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

凯发k8官方旗舰厅-凯发app官方网站
全部服务产品
开发者频道
服务升级
登录
驾车页
下载开发文档

示例代码:

算路
bnrouteplannode snode =newbnrouteplannode.builder()
.latitude(40.05087)
.longitude(116.30142)
.name("百度大厦")
.description("百度大厦")
.coordinatetype(coordinatetype.gcj02)
.build();
bnrouteplannode enode =newbnrouteplannode.builder()
.latitude(39.90882)
.longitude(116.39750)
.name("北京天安门")
.description("北京天安门")
.coordinatetype(coordinatetype.gcj02)
.build();
list<bnrouteplannode> list =newarraylist<>();
list.add(snode);
list.add(enode);
baidunavimanagerfactory.getrouteplanmanager().routeplan(list,ibnrouteplanmanager.routeplanpreference.route_plan_preference_default,null,newhandler(looper.getmainlooper()){
@override
publicvoidhandlemessage(message msg){
switch(msg.what){
caseibnrouteplanmanager.msg_navi_route_plan_start:
toast.maketext(demomainactivity.this.gtapplicationcontext(),
"算路开始",toast.length_short).show();
break;
caseibnrouteplanmanager.msg_navi_route_plan_success:
toast.maketext(demomainactivity.this.getapplicationcontext(),
"算路成功",toast.length_short).show();
break;
caseibnrouteplanmanager.msg_navi_route_plan_failed:
toast.maketext(demomainactivity.this.getapplicationcontext(),
"算路失败",toast.length_short).show();
break;
default:
// nothing
break;
}
}
});
生命周期

路线规划成功后,就可以使用驾车页,驾车页依赖app的页面生命周期,开发时,只需要将百度导航sdk驾车页生命周期接口挂接到对应页面的生命周期接口即可,app页面既可以是activity,也可以是fragment等。生命周期相关方法在baidunavimanagerfactory.getrouteresultmanager()中:

/**
* 在activity的oncreate() 或者 fragment的oncreateview()中调用
*/
voidoncreate(context context);
/**
* 在activity的onresume() 或者 fragment的onresume() 中调用
*/
voidonresume();
/**
* 在activity的onpause() 或者 fragment的onpause() 中调用
*/
voidonpause();
/**
* 在activity的ondestroy() 或者 fragment的ondestroy() 中调用
*/
voidondestroy();

调用方法以oncreate为例:

@nullable
@override
publicviewoncreateview(@nonnulllayoutinflater inflater, @nullableviewgroup container, @nullablebundle savedinstancestate){
// 获取路线规划ui
view view =baidunavimanagerfactory.getrouteresultmanager().oncreate(getactivity());
return view;
}
选路

路线规划成功后通常情况下会出现3条路线,该接口可监听某条路线是否被点击,如果被点击可调用baidunavimanagerfactory.getrouteguidemanager().selectroute(index)高亮并选中该条路线。

/**
* 路线点击事件监听
*/
voidsetrouteclickedlistener(irouteclickedlistener listener);
/**
* 路线点击事件
*/
interfaceirouteclickedlistener{
/**
* 点击了第几条
* @param index
*/
voidrouteclicked(int index);
}
全览路线
baidunavimanagerfactory.getrouteresultmanager().fullview();
开启专业导航

无需重新算路,直接跳转新页面调用专业导航生命周期即可,可参考demo。

// 返回true,代表可以跳转至专业导航
baidunavimanagerfactory.getrouteresultmanager().startnavi();
}
获取tab信息、路线详情和限行消息
/**
* 获取3tab信息和路线详情
*/
bundlegetrouteinfo();

返回的bundle中数据如下,具体使用方法可以参考demo中demorouteresultfragment类。

bundle bundle =baidunavimanagerfactory.getrouteresultmanager().getrouteinfo();
if(bundle ==null){
return;
}
// 3tab信息
mrouteplanitems = bundle.getparcelablearraylist(bnavicommonparams.bnrouteinfokey.info_tab);
// 每条路线的详细信息
mroutedetails = bundle.getbundle(bnavicommonparams.bnrouteinfokey.info_route_detail);
// 每条路线的坐标点
bundle pointlist = bundle.getbundle(bnavicommonparams.bnrouteinfokey.info_route_point);
if(pointlist !=null){
arraylist<bnpoint> bnpoints0 = pointlist.getparcelablearraylist("0");
arraylist<bnpoint> bnpoints1 = pointlist.getparcelablearraylist("1");
arraylist<bnpoint> bnpoints2 = pointlist.getparcelablearraylist("2");
}
驾车页设置

驾车页设置baidunavimanagerfactory.getrouteresultsettingmanager()接口如下:

/**
* 设置全览路线边距
* @param left
* @param top
* @param right
* @param bottom
*/
voidsetroutemargin(int left, int top, int right, int bottom);

上一篇

订单管理

下一篇

导航

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

网站地图