覆盖物开源代码中提供了一些基于基础覆盖物而组合而成的高级覆盖物,包括用于显示poi数据,规划路线,公交详情路线的覆盖物。
IndoorRouteOverlay/TransitRouteOverlay/WalkingRouteOverlay/BikingRouteOverlay/DrivingRouteOverlay/MassTransitRouteOverlay/ 以上源码在BaiduMapsApiDemo工程(Eclipse开发环境)和BaiduMapApiASDemo工程(AndroidStudio开发环境)com.baidu.mapapi.ovelayutil包下。 在进行路线规划Overlay绘制时根据开发环境选择开源工程添加至项目中使用。
自V3.7.0起,支持普通骑行路线规划,自V4,4.0起,支持电动车骑行路线规划。骑行路线规划可以根据起终点和骑行路线的数据,使用BikingRouteOverlay绘制出骑行路线图层,包括起终点和转弯点。支持自定义起终点和转弯点的图标。自V7.5.4起,骑行路线规划支持途径点,仅支持一个途径点。
mSearch = RoutePlanSearch.newInstance();
OnGetRoutePlanResultListener listener = new OnGetRoutePlanResultListener() { ...... @Override public void onGetBikingRouteResult(BikingRouteResult bikingRouteResult) { //创建BikingRouteOverlay实例 BikingRouteOverlay overlay = new BikingRouteOverlay(mBaiduMap); if (bikingRouteResult.getRouteLines().size() > 0) { //获取路径规划数据,(以返回的第一条路线为例) //为BikingRouteOverlay实例设置数据 overlay.setData(bikingRouteResult.getRouteLines().get(0)); //在地图上绘制BikingRouteOverlay overlay.addToMap(); } } };
注:需要将下载并解压后的BaiduMapsApiASDemo或BaiduMapsAPIDemo工程根据开发环境选择并添加到您的项目中才可以使用以上Overlay功能。
mSearch.setOnGetRoutePlanResultListener(listener);
PlanNode stNode = PlanNode.withCityNameAndPlaceName("北京", "西二旗地铁站"); PlanNode enNode = PlanNode.withCityNameAndPlaceName("北京", "百度科技园");
mSearch.bikingSearch((new BikingRoutePlanOption()) .from(stNode) .to(enNode) // ridingType 0 普通骑行,1 电动车骑行 // 默认普通骑行 .ridingType(0));
mSearch.destroy();效果如图:
电动车骑行导航与普通骑行导航在创建BikingRoutePlanOption对象时通过ridingType字段设置,默认为0,表示普通骑行路线规划,为1表示电动车骑行路线规划。
mSearch.bikingSearch((new BikingRoutePlanOption()) .from(stNode) .to(enNode) // ridingType 0 普通骑行 // 1 电动车骑行 // 默认普通骑行 .ridingType(1));
BikingRoutePlanOption类新增passBy()方法,具体说明如下:
方法名 | 参数类型 | 参数名 | 备注 |
passBy |
List<PlanNode> |
wayPoints |
骑行路线规划只支持一个途径点 |
示例代码如下:
// 设置途径点信息 途径点参数 PlanNode wayPointNode = PlanNode.withCityNameAndPlaceName(mEditWpCity.getText().toString().trim(), mWpNodeView.getText().toString().trim()); // 途径点列表有且仅有一个途径点 List<PlanNode> wayPoints = new ArrayList<>(); wayPoints.add(wayPointNode); // 步行路线规划参数 BikingRoutePlanOption bikingRoutePlanOption = new BikingRoutePlanOption(). from(startNode). to(endNode). passBy(wayPoints); // 添加途径点