开发 Android 导航SDK 开发指南 专业导航 多路线导航

多路线导航 最后更新时间: 2022年11月24日

多路线功能介绍

导航SDK从v6.3.0开始,支持多路线导航模式,即实时导航中拥有1到2条备选路线供用户选择,用户可以根据提供的时间差、距离差、费用差等信息,自行点击路线进行引导路线的变更,效果如图所示。 

通过设置AMapNavi.setMultipleRouteNaviMode: 来开关多路线导航模式,然后开始算路,关键代码如下:

//开启多路线模式
mAMapNavi.setMultipleRouteNaviMode(true);
//起点
NaviPoi start = new NaviPoi("立水桥(北5环)", new LatLng(40.066957,116.320518), "");
//终点
NaviPoi end = new NaviPoi("新三余公园(南5环)", new LatLng(40.070882 ,116.319429), "");
//开启多路线模式
boolean isSuccess = mAMapNavi.calculateDriveRoute(start ,end, null, PathPlanningStrategy.DRIVING_MULTIPLE_ROUTES_DEFAULT);

多备选路线模式打开以后,在导航过程中,会周期性的计算备选路线,如果此时有备选路线更新会通过路线规划成功接口将新路线回调回来,然后可以通过AMapNavi中接口选择切换路线。 

public void onCalculateRouteSuccess(AMapCalcRouteResult routeResult) {
    //规划类型为备选路线更新
    if(routeResult.getCalcRouteType() == ReCalculateRouteType.ROUTE_TYPE_MUTIROUTE_REQUEST){
    }
}

//获取路线集合
HashMap<Integer, AMapNaviPath> hashMap = mAMapNavi.getNaviPaths();
//使用pathid进行路线切换
mAMapNavi.selectMainPathID(hashMap.get(12).getPathid());

注意点:

  • 设置的导航模式会在下一次主动路径规划时生效, 建议在AMapNavi单例初始化时就进行设置。
  • 多路线导航除了模式设置为true,还需同时满足以下4个条件才能够生效:
    • 路径规划时 AMapNaviDrivingStrategy 需选用多路径策略; 
    • 起终点的直线距离需<=80KM; 
    • 不能有途经点;
    • 支持货车类型,但多路线模式会消耗货车算路服务配额。
返回顶部 示例中心 常见问题 智能客服 公众号
二维码