货车路线规划与导航的方法和驾车类似,只需要把路线规划和导航的类型设置为货车即可。详细请参考驾车路线规划。
开发者可以在货车路线规划前设置货车车牌,在货车的路径规划策略中,会将货车特有的限高、限重、车型等信息加入到路径规划策略中进行计算。
设置货车车牌例子如下:
// 设置货车信息-(void)settruckinfo {bmtruckinfomodel*model =[[bmtruckinfomodel alloc] init];// 货车类型的车辆牌照的类型model.truckcartype=bntruckcartypecommon;model.trucktype=bmtrucktypemicro;// 货车类型的车辆牌照的类型model.powertype=bmtruckpowertypegasoline;// 动力类型model.carnumber= @"京a66666";// 车牌号 例如:京b88888model.emission=1*1000;// 排放标准 例如:国五 emission = 5model.weight=2.565*1000;// 车重单位kg 0~100吨 例如:1吨 weight = 1 * 1000model.load=1.73*1000;// 载重单位kg 0~100吨 例如:1吨 load = 1 * 1000model.length=6*1000;// 车长单位mm 0~25米 例如:1米 length = 1 * 1000model.width=2.15*1000;// 车宽单位mm 0~5米 例如:1米 width = 1 * 1000model.height=3.5*1000;// 车高单位mm 0~10米 例如:1米 height = 1 * 1000model.axlenumber=2;// 轴数 例如 3轴 axlenumber = 3;model.platecolor=bntruckplatecolorgreen;// 车牌颜色model.axleweight=2*1000;// 轴重单位kg 0~100吨 例如:1吨 weight = 1 * 1000model.oilcost=13*1000;// 百公里油耗 毫升 0~150l 例如:百公里耗油20升 oilcost = 20 * 1000[bnaviservice_strategy synctruckinfomodel:model];}
和驾车、摩托车相比,货车支持偏航后传入指定路线以及私有路线功能,下面分别介绍这两个能力。
偏航后传入指定路线是指支持在货车导航过程中,如果发生了偏航,开发者可以传入指定的路线继续导航。
使用货车偏航后传入指定路线功能,需要将bnstrategymanagerprotocol中的yawspecifiedroutenavigation设置好,其中0(默认,可以不设置)代表偏航后百度服务器返回偏航路线,1代表偏航后客户服务器返回偏航路线,2代表偏航后回到进入导航时选择的路线。代码示例如下:
///设置偏航后回到用户指定路线导航/** 货车sdk偏航路线模式0 默认策略,1 偏航路线api提供,2 偏航会进入导航时选的路线*/@property(nonatomic, assign) int yawspecifiedroutenavigation;bnaviservice_strategy.yawspecifiedroutenavigation=1;
货车行中偏航时会有naviyawingdidstart:方法回调,如果yawspecifiedroutenavigation设置为1时(设置为0或2时不需要处理,会自动算路),开发者需要在该回调方法内把extrainfo信息传给导航sdk。
注:extrainfo一般是开发者的服务端从导航sdk服务端获取,开发者客户端再从开发者服务端获取。
/*** 导航中开始偏航* @paramyawing stamp falg信息,yawspecifiedroutenavigation设置为1时 开发者需要将flag和其他货车信息传给客户端服务器。*/-(void)naviyawingdidstart:(bnavimodel*)model withstamp:(nsstring*)yawingstamp{// yawspecifiedroutenavigation设置为0或2时不需要进行如下的处理,将会根据设置自动算路。if(bnaviservice_strategy.yawspecifiedroutenavigation!=1){return;}// 从开发者服务端获取extrainfo后,调用算路接口重新算路nsstring*extrainfo = @"此处填写获取到的extrainfo";// 设置导航类型为货车导航bn_navitype navitype =bn_navitypetruck;//算路方法[bnaviservice_routeplan startnavirouteplan:bnrouteplanmode_recommend navinodes:self.nodesarray time:nil delegete:self userinfo:@{bnavitriptypekey: @(navitype),bnavirouteplanassignkey:extrainfo}];}
私有路线功能是指支持外部传入一条指定id的路线发起导航,具体实现方法是由bnrouteplanmanagerprotocol发起算路接口实现,在该接口中按照以下规则传入参数即可。
接口详情
/*** 发起算路** @param emode 算路方式,定义见bnrouteplanmode* @param navinodes 算路节点数组,起点、途经点、终点按顺序排列,节点信息为bnrouteplannode结构* @param navitime 发起算路时间,用于优化算路结果,可以为nil* @param delegate 算路委托,用于回调* @param userinfo 用户需要传入的参数,货车导航算路需要传入bnavitriptypekey,值为bn_navitypetruck* 支持传入参数:*bnavitriptypekey:nsnumber *, 可选,bn_navitype类型,不传默认为驾车。*(1)货车,传@(bn_navitypetruck)*(2)驾车,传@(bn_navitypereal)*(3)摩托车,传@(bn_navitypemoto)*trajectory_restore: nsdictionary*, 可选,提供私有路线功能,内传两对 key-value*type - 和服务约定的type类型*id - 从服务获取的id数据*/-(void)startnavirouteplan:(bnrouteplanmode)emodenavinodes:(nsarray*)navinodestime:(bnavicalcroutetime*)navitimedelegete:(id<bnnavirouteplandelegate>)delegateuserinfo:(nsdictionary*)userinfo;
代码示例
-(void)starroute:(bool)isreal {bn_navitype navitype =bn_navitypetruck;// 私有路线功能,在算路接口的userinfoinfo中传入一个key为@”trajectory_restore“的字典,字典中传入两个键值对,type - 固定传8,id - 服务端获取nsdictionary*dict = @{@"type":@"8",@"id":@"0421a1c5864e4045acb826579dac4b82"};[bnaviservice_routeplan startnavirouteplan:bnrouteplanmode_recommend navinodes:self.nodesarray time:nil delegete:self userinfo:@{bnavitriptypekey: @(navitype),@"trajectory_restore":dict}];}
上一篇
下一篇
本篇文章对您是否有帮助?