自v5.3.0起,新增室内步行导航功能。
开发包的下载注意:
1. 步骑行导航的开发包与普通地图服务的开发包下载时区别。
2. 将解压后的开发包中assets目录下的png文件拷贝到您的项目的assets目录下。
加入如下权限使用声明
<uses-permissionandroid:name="android.permission.vibrate"/><uses-permissionandroid:name="android.permission.camera"/><uses-permissionandroid:name="android.manifest.permission.change_wifi_state"/><uses-permissionandroid:name="android.permission.access_wifi_state"/>
使用室内步行导航前需要对步行导航引擎初始化。 示例代码如下:
// 获取导航控制类// 引擎初始化walknavigatehelper.getinstance().initnaviengine(this,newiwengineinitlistener(){@overridepublicvoidengineinitsuccess(){//引擎初始化成功的回调routeplanwithroutenode();}@overridepublicvoidengineinitfail(){//引擎初始化失败的回调}});
示例代码如下:
//起终点位置startpt =newlatlng(40.056015,116.3078);// 百度大厦walkroutenodeinfo walkstartnode =newwalkroutenodeinfo();walkstartnode.setkeyword("百度大厦");walkstartnode.setlocation(startpt);walkstartnode.settype(routenodetype.keyword);walkstartnode.setcitycode(131)endpt =newlatlng(40.035919,116.339863);walkroutenodeinfo walkendnode =newwalkroutenodeinfo();walkendnode.setlocation(endpt);walkendnode.settype(routenodetype.keyword);walkendnode.setkeyword("麻辣诱惑(五彩城店) ");walkendnode.setbuildingid("1260176407175102463");walkendnode.setfloorid("f4");walkendnode.setcitycode(131);walkparam =newwalknavilaunchparam().startnodeinfo(walkstartnode).endnodeinfo(walkendnode);//发起路线规划walknavigatehelper.getinstance().routeplanwithroutenode(mparam,newiwrouteplanlistener(){@overridepublicvoidonrouteplanstart(){//开始算路的回调}@overridepublicvoidonrouteplansuccess(){//算路成功navicalcroute(0);}@overridepublicvoidonrouteplanfail(walkrouteplanerror walkrouteplanerror){//算路失败的回调}});//导航引擎算路privatevoidnavicalcroute(int routeindex){walknavigatehelper.getinstance().navicalcroute(routeindex,newiwnavicalcroutelistener(){@overridepublicvoidonnavicalcroutesuccess(){intent intent =newintent();intent.setclass(bnavimainactivity.this,wnaviguideactivity.class);startactivity(intent);}@overridepublicvoidonnavicalcroutefail(walkrouteplanerror error){log.d(tag,"walknavi navicalcroute fail");}});}
示例代码如下:
//获取walknavigatehelper实例mnavihelper =walknavigatehelper.getinstance();//获取诱导页面地图展示viewview view = mnavihelper.oncreate(wnaviguideactivity.this);if(view !=null){setcontentview(view);}mnavihelper.startwalknavi(wnaviguideactivity.this);
代码如下:
@overrideprotectedvoidonresume(){super.onresume();mnavihelper.resume();}@overrideprotectedvoidonpause(){super.onpause();mnavihelper.pause();}@overrideprotectedvoidondestroy(){super.ondestroy();mnavihelper.quit();}
完成以上步骤,即可在您的应用中实现基本的室内步行导航功能。
通过iwrouteguidancelistener接口各种回调方法开发者可以对导航状态进行相应处理,主要包括导航开始、结束,导航过程中偏航、偏航结束,诱导信息(诱导图标、诱导信息、诱导类型、剩余时间、剩余距离、震动等)
示例代码如下:
mnavihelper.setrouteguidancelistener(this,newiwrouteguidancelistener(){//诱导图标更新@overridepublicvoidonrouteguideiconupdate(drawable drawable){}//诱导类型枚举@overridepublicvoidonrouteguidekind(routeguidekind routeguidekind){}/*** 诱导信息* @param charsequence 第一行显示的信息,如“沿当前道路”* @param charsequence1 第二行显示的信息,比如“向东出发”,第二行信息也可能为空*/@overridepublicvoidonroadguidetextupdate(charsequence charsequence,charsequence charsequence1){}//总的剩余距离@overridepublicvoidonremaindistanceupdate(charsequence charsequence){}//总的剩余时间@overridepublicvoidonremaintimeupdate(charsequence charsequence){}//gps状态发生变化,来自诱导引擎的消息@overridepublicvoidongpsstatuschange(charsequence charsequence,drawable drawable){}//已经开始偏航@overridepublicvoidonroutefaraway(charsequence charsequence,drawable drawable){}//偏航规划中@overridepublicvoidonrouteplanyawing(charsequence charsequence,drawable drawable){}//重新算路成功@overridepublicvoidonreroutecomplete(){}//抵达目的地@overridepublicvoidonarrivedest(){}//震动@overridepublicvoidonvibrate(){}
sdk提供导航过程中的文本输出,开发者可自行传入对应的语音回调,形成播报功能。建议使用百度语音识别服务sdk。 地址:设置播报监听,使用语音回调播报。
注:该接口需要在startwikenavi方法之前调用。
示例代码如下:
mnavihelper.setttsplayer(newiwttsplayer(){/*** 诱导文本回调* @param s 诱导文本* @param b 是否抢先播报* @return*/@overridepublic int playttstext(string s, boolean b){return0;}});
-keep classcom.baidu.**{*;}-keep classmapsdkvi.com.**{*;}-dontwarn com.baidu.**-keep classcom.google.protobuf.micro.**{*;}-keep classcom.baidu.entity.pb.**{*;}
上一篇
下一篇
本篇文章对您是否有帮助?