自v4.2.0起,新增普通骑行导航功能,支持骑行导航、偏航纠正等功能。
自v4.4.0起,新增电动车骑行导航,即baidumapssdk同时支持普通自行车骑行导航(简称:普通骑行导航)和电动车骑行导航baidumapandroidsdk默认为普通骑行导航,旧版用户不受影响。
自v4.4.0起,将骑行导航参数类的类名bikenavilauchparam修改为bikenavilaunchparam
自v5.0.0起,支持全球200多个国家和地区的骑行导航,无需单独申请即可直接使用。
开发包的下载
注意:
1. 步骑行导航的开发包与普通地图服务的开发包下载时区别。
2. 将解压后的开发包中assets目录下的png文件拷贝到您的项目的assets目录下。
骑行导航骑包括普通骑行导航和电动车骑行导航两种导航模式,默认为普通骑行导航,旧版用户不受影响。
1、电动车规避电动车禁行路段,避免罚款;普通骑行更适用于自行车。
2、电动车路线规划倾向于走大路,方便寻路,适于快速通行。
3、电动车语音播报返回的文字,针对电动车场景进行优化。
vehicle :0:普通骑行导航 ; 1:电动车骑行导航。
不设置vehicle的值时,默认为0 普通骑行导航。两种骑行导航模式切换时,除了vehicle参数设置以外,其余骑行导航逻辑均不需要改变。
加入如下权限使用声明
<uses-permissionandroid:name="android.permission.access_fine_location"/><uses-permissionandroid:name="android.permission.vibrate"/>
在使用骑行导航功能前,需要对骑行引擎进行初始化。在初始化成功的回调中调用发起算路的逻辑。
2.在application标签中声明定位的service组件
<serviceandroid:name="com.baidu.location.f"android:enabled="true"android:process=":remote"/>
示例代码如下:
// 获取导航控制类// 引擎初始化bikenavigatehelper.getinstance().initnaviengine(this,newibengineinitlistener(){@overridepublicvoidengineinitsuccess(){//骑行导航初始化成功之后的回调routeplanwithparam();}@overridepublicvoidengineinitfail(){//骑行导航初始化失败之后的回调}});
//起终点位置startpt =newlatlng(40.047416,116.312143);endpt =newlatlng(40.048424,116.313513);//构造bikenavilaunchparam//.vehicle(0)默认的普通骑行导航param =newbikenavilaunchparam().stpt(startpt).endpt(endpt).vehicle(0);
在算路成功的回调中跳转至诱导界面,示例代码如下
//发起算路bikenavigatehelper.getinstance().routeplanwithparams(param,newibrouteplanlistener(){@overridepublicvoidonrouteplanstart(){//执行算路开始的逻辑}@overridepublicvoidonrouteplansuccess(){//算路成功//跳转至诱导页面intent intent =newintent(bnavimainactivity.this,bnaviguideactivity.class);startactivity(intent);}@overridepublicvoidonrouteplanfail(bikerouteplanerror bikerouteplanerror){//执行算路失败的逻辑}});
示例代码如下:
//获取bikenavigatehelper示例mnavihelper =bikenavigatehelper.getinstance();// 获取诱导页面地图展示viewview view = mnavihelper.oncreate(bnaviguideactivity.this);if(view !=null){setcontentview(view);}// 开始导航mnavihelper.startbikenavi(bnaviguideactivity.this);
@overrideprotectedvoidonresume(){super.onresume();mnavihelper.resume();}@overrideprotectedvoidonpause(){super.onpause();mnavihelper.pause();}@overrideprotectedvoidondestroy(){super.ondestroy();mnavihelper.quit();}
完成以上步骤,即可在您的应用实现骑行导航。
效果如图:
通过ibrouteguidancelistener接口各种回调方法开发者可以对导航状态进行相应处理,主要包括导航开始、到达目的地,导航过程中偏航、偏航规划,诱
导信息(诱导图标、诱导信息、诱导类型、剩余时间、剩余距离、震动等)
示例代码如下:
// 设置诱导监听, 具体诱导信息请参考javadoc类参考// com.baidu.mapapi.bikenavi.adapter -> ibrouteguidancelistenermnavihelper.setrouteguidancelistener(this,newibrouteguidancelistener(){@overridepublicvoidonrouteguideiconupdate(drawable icon){//诱导图标更新}@overridepublicvoidonrouteguidekind(routeguidekind routeguidekind){//诱导类型枚举}@overridepublicvoidonroadguidetextupdate(charsequence charsequence,charsequence charsequence1){//诱导信息}@overridepublicvoidonremaindistanceupdate(charsequence charsequence){//总的剩余距离}@overridepublicvoidonremaintimeupdate(charsequence charsequence){//总的剩余时间}@overridepublicvoidongpsstatuschange(charsequence charsequence,drawable drawable){//gps状态发生变化,来自诱导引擎的消息}@overridepublicvoidonroutefaraway(charsequence charsequence,drawable drawable){//已经开始偏航}@overridepublicvoidonrouteplanyawing(charsequence charsequence,drawable drawable){//偏航规划中}@overridepublicvoidonreroutecomplete(){//重新算路成功}@overridepublicvoidonarrivedest(){//到达目的地}@overridepublicvoidonvibrate(){//震动}@overridepublicvoidongetroutedetailinfo(bikeroutedetailinfo bikeroutedetailinfo){//获取骑行导航路线详细信息类}});
sdk提供导航过程中的文本输出,开发者可自行传入对应的语音回调,形成播报功能。建议使用百度语音识别服务sdk。 地址:设置播报监听,使用语音回调播报。
注意:该接口需要在startbikenavi方法之前调用。
示例代码如下:
mnavihelper.setttsplayer(newibttsplayer(){/*** 获取导航过程中语音,进行播报* @param s 播报语音文本* @param b 是否抢占播报*/@overridepublic int playttstext(string s, boolean b){//调用语音识别sdk的语音回调进行播报return0;}});
上一篇
下一篇
本篇文章对您是否有帮助?