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

浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。
步行导航
下载开发文档
步行导航简介

自v4.4.0起,新增步行导航功能,支持普通步行导航、步行ar导航、偏航纠正等导航功能。
自v5.0.0起,支持全球200多个国家和地区的步行导航,无需单独申请即可直接使用。
自v7.5.4起,地图sdk升级步行导航ar功能,优化ar步行导航可视化效果。
注:步行导航ar模式不支持手机横屏,升级后的ar步行导航支持android 5.0以上的机型。

下载开发包并配置开发环境

开发包的下载
注意: 1. 步骑行导航的开发包与普通地图服务的开发包下载时区别。
2. 将解压后的开发包中 assets 目录下的 png 文件拷贝到您的项目的 assets 目录下。

配置androidmanifest.xml文件

加入如下权限使用声明

<uses-permissionandroid:name="android.permission.access_fine_location"/>
<uses-permissionandroid:name="android.permission.vibrate"/>
<uses-permissionandroid:name="android.permission.camera"/>
引擎初始化

使用步行导航前需要对步行导航引擎初始化。
示例代码如下:

// 获取导航控制类
// 引擎初始化
walknavigatehelper.getinstance().initnaviengine(this,newiwengineinitlistener(){
@override
publicvoidengineinitsuccess(){
//引擎初始化成功的回调
routewalkplanwithparam();
}
@override
publicvoidengineinitfail(){
//引擎初始化失败的回调
}
});
发起算路
1. 构造walknavilaunchparam

示例代码如下:

//起终点位置
startpt =newlatlng(40.047416,116.312143);
endpt =newlatlng(40.048424,116.313513);
//构造walknavilaunchparam
mparam =newwalknavilaunchparam().stpt(startpt).endpt(endpt);
2. 发起算路
//发起算路
walknavigatehelper.getinstance().routeplanwithparams(mparam,newiwrouteplanlistener(){
@override
publicvoidonrouteplanstart(){
//开始算路的回调
}
@override
publicvoidonrouteplansuccess(){
//算路成功
//跳转至诱导页面
intent intent =newintent(bnavimainactivity.this,wnaviguideactivity.class);
startactivity(intent);
}
@override
publicvoidonrouteplanfail(walkrouteplanerror walkrouteplanerror){
//算路失败的回调
}
});
开始导航
1. 新建诱导activity,创建诱导view,发起导航

示例代码如下:

//获取walknavigatehelper实例
mnavihelper =walknavigatehelper.getinstance();
//获取诱导页面地图展示view
view view = mnavihelper.oncreate(wnaviguideactivity.this);
if(view !=null){
setcontentview(view);
}
mnavihelper.startwalknavi(wnaviguideactivity.this);
2. 正确管理walknavigatehelper对象生命周期。

代码如下:

@override
protectedvoidonresume(){
super.onresume();
mnavihelper.resume();
}
@override
protectedvoidonpause(){
super.onpause();
mnavihelper.pause();
}
@override
protectedvoidondestroy(){
super.ondestroy();
mnavihelper.quit();
}

完成以上步骤,即可在您的应用中实现基本的步行导航功能,效果如图:

步行ar导航
1. 配置和申请camera权限
androidmanifest配置

使用ar步行导航,需要在androidmanifest中配置camera权限:

<uses-permissionandroid:name="android.permission.camera"/>
申请camera权限

使用ar步行导航,需要在步行诱导页面的activity中添加camera权限申请的回调函数

@override
publicvoidonrequestpermissionsresult(int requestcode,string[] permissions, int[] grantresults){
super.onrequestpermissionsresult(requestcode, permissions, grantresults);
if(requestcode ==arcameraview.walk_ar_permission){
if(grantresults.length>0&& grantresults[0]==packagemanager.permission_granted){
mnavihelper.startcameraandsetmapview(wnaviguideactivity.this);
}elseif(grantresults.length>0&& grantresults[0]==packagemanager.permission_denied){
toast.maketext(this,"需要开启相机使用权限",toast.length_short).show();
}
}
}
2. 导航状态变化的回调

要实现普通导航与ar导航的切换,需要在onwalknavimodechange回调函数中调用mnavihelper.switchwalknavimode方法。
示例代码如下:

mnavihelper.setwalknavistatuslistener(newiwnavistatuslistener(){
/**
* 普通步行导航模式和步行ar导航模式的切换
* @param i 导航模式
* @param walknavimodeswitchlistener 步行导航模式切换的监听器
*/
@override
publicvoidonwalknavimodechange(int mode,walknavimodeswitchlistener walknavimodeswitchlistener){
mnavihelper.switchwalknavimode(wnaviguideactivity.this, mode, walknavimodeswitchlistener);
}
@override
publicvoidonnaviexit(){
}
});

效果如图:

导航状态信息

通过iwrouteguidancelistener接口各种回调方法开发者可以对导航状态进行相应处理,主要包括导航开始、结束,导航过程中偏航、偏航结束, 诱导信息(诱导图标、诱导信息、诱导类型、剩余时间、剩余距离、震动等)
示例代码如下:

mnavihelper.setrouteguidancelistener(this,newiwrouteguidancelistener(){
//诱导图标更新
@override
publicvoidonrouteguideiconupdate(drawable drawable){
}
//诱导类型枚举
@override
publicvoidonrouteguidekind(routeguidekind routeguidekind){
}
/**
* 诱导信息
* @param charsequence 第一行显示的信息,如“沿当前道路”
* @param charsequence1 第二行显示的信息,比如“向东出发”,第二行信息也可能为空
*/
@override
publicvoidonroadguidetextupdate(charsequence charsequence,charsequence charsequence1){
}
//总的剩余距离
@override
publicvoidonremaindistanceupdate(charsequence charsequence){
}
//总的剩余时间
@override
publicvoidonremaintimeupdate(charsequence charsequence){
}
//gps状态发生变化,来自诱导引擎的消息
@override
publicvoidongpsstatuschange(charsequence charsequence,drawable drawable){
}
//已经开始偏航
@override
publicvoidonroutefaraway(charsequence charsequence,drawable drawable){
}
//偏航规划中
@override
publicvoidonrouteplanyawing(charsequence charsequence,drawable drawable){
}
//重新算路成功
@override
publicvoidonreroutecomplete(){
}
//抵达目的地
@override
publicvoidonarrivedest(){
}
//震动
@override
publicvoidonvibrate(){
}
获取语音播报文本

sdk提供导航过程中的文本输出,开发者可自行传入对应的语音回调,形成播报功能。建议使用百度语音识别服务sdk。 地址:设置播报监听,使用语音回调播报。
注意:该接口需要在startwikenavi方法之前调用。
示例代码如下:

mnavihelper.setttsplayer(newiwttsplayer(){
/**
* 诱导文本回调
* @param s 诱导文本
* @param b 是否抢先播报
* @return
*/
@override
public int playttstext(string s, boolean b){
return0;
}
});

上一篇

骑行导航

下一篇

室内步行导航

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

网站地图