ios司乘同显sdk | 百度地图api sdk-凯发k8官方旗舰厅

凯发k8官方旗舰厅-凯发app官方网站
全部服务产品
开发者频道
服务升级
登录
行程信息显示与管理
下载开发文档
创建地图

首先实例化一个bmkmapview对象,司乘同显页面将通过此视图来展示司乘同显效果。

bmkmapview*mapview =[[bmkmapview alloc] initwithframe:self.view.frame];
mapview.delegate= self;
创建订单信息

实例化一个bmksctxorderinfo对象,用于设置订单的基本信息。

// 司机位置点
cllocationcoordinate2d driverposition =bmkcoordtrans(cllocationcoordinate2dmake(39.91885,116.45932),bmk_coordtype_gps,bmk_coordtype_bd09ll);
// 订单起点
bmksctxpoipointinfo*startpoi =[[bmksctxpoipointinfo alloc] init];
startpoi.coordinate=bmkcoordtrans(cllocationcoordinate2dmake(39.92144,116.53370),bmk_coordtype_gps,bmk_coordtype_bd09ll);
// 订单终点
bmksctxpoipointinfo*endpoi =[[bmksctxpoipointinfo alloc] init];
endpoi.coordinate=bmkcoordtrans(cllocationcoordinate2dmake(40.04162,116.30654),bmk_coordtype_gps,bmk_coordtype_bd09ll);
bmksctxorderinfo*order =[[bmksctxorderinfo alloc] initwithorderid:@"订单号"userid:@"厂商唯一标志符"driverid:@"订单对应的司机唯一标志符"driverposition:driverposition startpointinfo:startpoi endpointinfo:endpoi coordtype:bmk_sctx_coordtype_bd09ll];
自定义配置

如果需要自定义标注和路况纹理的图片,还需要实例化一个bmksctxpassengerdisplayoption对象;通过bmksctxpassengerdisplayoption对象设置标注与路线的显示样式。 包括小车、起终点的图片,路线宽度,路况纹理等。sdk均提供默认值,没有特殊需求,可以不设置

bmksctxpassengerdisplayoption*option =[[bmksctxpassengerdisplayoption alloc] init];
// 线宽
option.linewidth=5;
// 3d小车图片数组
nsmutablearray*car3dimages =[nsmutablearray array];
nsinteger interval =45;
// 初始小车图片车头向右,逆时针增加
for(int begin =0; begin <360; begin = interval){
nsstring*carimagename =[nsstring stringwithformat:@"sctx_car_%d.png",begin];
uiimage*carimage =[uiimage imagenamed:carimagename];
if(carimage){
[car3dimages addobject:carimage];
}
}
if(car3dimages && car3dimages.count>0){
option.car3dimages= car3dimages;
}
初始化司乘同显服务

根据以上配置创建司乘同显服务对象,并设置司乘同显服务代理。

self.sctxmanager=[[bmksctxpassengermanager alloc] initwithmapview:mapview orderinfo:order displayoption:option];
self.sctxmanager.delegate= self;
司乘同显代理回调

设置司乘同显代理后,开发者可以通过 bmksctxpassengermanagerdelegate回调接口获取剩余距离、预计剩余时间、服务错误码,查看修改订单终点信息回调状态、拉取到司机位置回调状态,以及查看司乘同显过程中,不同处理结果回调(如:首条路线绘制完成)。

/**
剩余距离、预计剩余时间的回调接口,当二者有变化时,sdk通过此接口通知app
@param manager 司乘同显服务管理对象
@param remainingdistance 剩余距离(单位:米)
@param estimatedtime 剩余时间(单位:秒)
*/
-(void)onroutestatuschangeformanager:(bmksctxpassengermanager*)manager
remainingdistance:(nsuinteger)remainingdistance
estimatedtime:(nsuinteger)estimatedtime;
/**
sdk通过此方法将错误码回调给开发者
@param manager 司乘同显服务管理对象
@param error 错误对象
*/
-(void)onerroroccurredformanager:(bmksctxpassengermanager*)manager
witherror:(nserror*)error;
/**
sdk通过此方法告知开发者修改订单终点信息是否成功
@param error 错误码,0:成功,其他:失败
*/
-(void)onupdateendpositioninforesult:(nserror*)error;
/**
* 成功拉取到司机位置的回调
*
* @param driverposition 司机位置
* @param updatetime 司机位置更新时间
*/
-(void)ondriverpositionupdated:(cllocationcoordinate2d)driverposition
updatetime:(nstimeinterval)updatetime;
/**
司乘同显过程中,不同处理结果回调
@param statuscode 状态码
@param message 对应状态码信息信息
*/
-(void)onsynchronizationprocessresultcode:(bmksctxprocessstatuscode)statuscode
message:(nsstring*)message;
生命周期管理
-(void)viewwillappear:(bool)animated {
[superviewwillappear:animated];
[self.mapview viewwillappear];
// 恢复司乘同显服务
[self.sctxmanager onresume];
}
-(void)viewwilldisappear:(bool)animated {
[superviewwilldisappear:animated];
[self.mapview viewwilldisappear];
// 暂停司乘同显服务
[self.sctxmanager onpause];
self.sctxmanager= nil;
}

其它司乘同显相关设置请参考订单管理显示与样式

上一篇

sdk初始化

下一篇

乘客位置

本篇文章对您是否有帮助?

网站地图