多路线导航 最后更新时间: 2022年11月24日
基本介绍
导航SDK从v6.3.0开始,支持多路线导航模式,即实时导航中拥有1到2条备选路线供用户选择,用户可以根据提供的时间差、距离差、费用差等信息,自行点击路线进行引导路线的变更,效果如图所示。
使用说明
通过设置-setMultipleRouteNaviMode: 来开关多路线导航模式,然后开始算路,关键代码如下:
[[AMapNaviDriveManager sharedInstance] addDataRepresentative:self];
[[AMapNaviDriveManager sharedInstance] setMultipleRouteNaviMode:YES];
[[AMapNaviDriveManager sharedInstance] calculateDriveRouteWithStartPOIInfo:self.startPOIInfo endPOIInfo:self.endPOIInfo wayPOIInfos:nil drivingStrategy:AMapNaviDrivingStrategyMultipleDefault];
AMapNaviDriveManager.sharedInstance().addDataRepresentative(self)
AMapNaviDriveManager.sharedInstance().setMultipleRouteNaviMode(true)
AMapNaviDriveManager.sharedInstance().calculateDriveRoute(withStart:startPOIInfo, end:endPOIInfo, wayPOIInfos:nil, drivingStrategy:AMapNaviDrivingStrategyMultipleDefault)
算路成功后,进行实时导航,在导航中变更引导路线时,会收到如下回调:
/**
* @brief 路径信息更新回调
* @param driveManager 驾车导航管理类
* @param naviRoute 路径信息,参考 AMapNaviRoute 类
*/
- (void)driveManager:(AMapNaviDriveManager *)driveManager updateNaviRoute:(nullable AMapNaviRoute *)naviRoute;
/**
* @brief 多路线导航模式下的备选路线更新回调, 注意:此函数只有在 driveManager 设置了多路线导航模式才会回调. since 6.3.0
* @param driveManager 驾车导航管理类
* @param backupRoutes 备选路线信息数组, 参考 AMapNaviRoute 类
*/
- (void)driveManager:(AMapNaviDriveManager *)driveManager updateBackupRoute:(nullable NSArray<AMapNaviRoute *> *)backupRoutes;
注意点:
- 设置的导航模式会在下一次主动路径规划时生效, 建议在AMapNaviDriveManager单例初始化时就进行设置.
- 多路线导航除了模式设置为YES,还需同时满足以下4个条件才能够生效:
- 路径规划时AMapNaviDrivingStrategy需选用多路径策略;
- 起终点的直线距离需<=80KM;
- 不能有途径点;
- 支持货车类型,但多路线模式会消耗货车算路服务配额。