摩托车路径规划 最后更新时间: 2021年08月05日
基本介绍
从导航SDK v8.0.0版本开始,全面支持摩托车路径规划和导航功能。其中主要区别于驾车的部分就是在摩托车的路径规划策略中,会将摩托车的车牌号、排量等信息加入到路径规划策略中进行计算。
特别注意:摩托车路径规划是收费接口,您如果申请试用或者正式应用都请通过工单系统提交商务合作类工单进行沟通,否则默认是无法算路成功的。
摩托车导航大部分功能和驾车导航一样,所以要实现摩托车路径规划功能,需要先了解驾车路径规划
说明:
- 摩托车路径规划需要单独设置 车辆信息的 type=11
- 摩托车路径规划同时也需要设置摩托车排量和摩托车车牌
- 摩托车路径规划方法和驾车路径规范方法一样:请参考驾车路径规划
- 摩托车路径规划策略复用驾车的AMapNaviDrivingStrategy类型,有单独的4种路径规划路径规划策略值:从2001到2004
摩托车算路策略
导航SDK提供4种摩托车路径规划策略,对应 AMapNaviDrivingStrategy 枚举如下。
策略ID | 常量字段 | 策略描述 |
---|---|---|
2001 | AMapNaviMotorStrategyMultipleDefault | 摩托车多路径: 默认 |
2002 | AMapNaviMotorStrategyMultipleAvoidHighway | 摩托车多路径: 不走高速 |
2003 | AMapNaviMotorStrategyMultiplePrioritiseHighway | 摩托车多路径: 高速优先 |
2004 | AMapNaviMotorStrategyMultipleAvoidCost | 摩托车多路径: 避免收费 |
摩托车路线规划
摩托车的算路接口和驾车都是一样的,SDK是通车辆信息来区别是否为摩托车的。AMapNaviVehicleInfo.type 为11时是摩托车
// 设置摩托车车辆信息
AMapNaviVehicleInfo *info = [[AMapNaviVehicleInfo alloc] init];
info.vehicleId = @"京BT8888";
info.motorcycleCC = 100;
info.type = 11;
[[AMapNaviDriveManager sharedInstance] setVehicleInfo:info];
// 设置摩托车车辆信息
let info = AMapNaviVehicleInfo.init()
info.vehicleId = "京BT8888"; //设置车牌号
info.motorcycleCC = 100;
info.type = 11;
let success = AMapNaviDriveManager.sharedInstance().setVehicleInfo(info)
使用说明
第 1 步,设置起终点信息
//使用POI初始化起终点
self.startPOIInfo = [[AMapNaviPOIInfo alloc]init];
self.startPOIInfo.mid = @"B0FFFAB6J2";
self.endPOIInfo = [[AMapNaviPOIInfo alloc]init];
self.endPOIInfo.mid = @"B0FFIA9OE8";
//使用POI初始化起终点
let startPOIInfo = AMapNaviPOIInfo.init()
startPOIInfo.mid = "B0FFFAB6J2"
let endPOIInfo = AMapNaviPOIInfo.init()
endPOIInfo.mid = "B0FFIA9OE8"
第 2 步,规划路线
//使用起终点POI规划路线
[[AMapNaviDriveManager sharedInstance] calculateDriveRouteWithStartPOIInfo:self.startPOIInfo
endPOIInfo:self.endPOIInfo
wayPOIInfos:nil
drivingStrategy:AMapNaviMotorStrategyMultipleDefault];
//使用起终点POI规划路线
AMapNaviDriveManager.sharedInstance().calculateDriveRoute(withStart:startPOIInfo,
end:endPOIInfo,
wayPOIInfos:nil,
drivingStrategy:AMapNaviMotorStrategyMultipleDefault)
第 3 步,处理结果
当路线规划成功时,会触发 -driveManager:onCalculateRouteSuccessWithType: 回调,在该回调函数中,可以进行规划路线的显示,也可以直接 开启导航。
- (void)driveManager:(AMapNaviDriveManager *)driveManager onCalculateRouteSuccessWithType:(AMapNaviRoutePlanType)type;
{
NSLog(@"onCalculateRouteSuccess");
//显示路径或开启导航
}
func driveManager(_ driveManager: AMapNaviDriveManager, onCalculateRouteSuccessWith type: AMapNaviRoutePlanType)
{
NSLog("onCalculateRouteSuccess");
//显示路径或开启导航
}