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

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

自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、电动车语音播报返回的文字,针对电动车场景进行优化。

通过设置bikenavilaunchparam对象中的vehicle的值区分:

vehicle :0:普通骑行导航 ; 1:电动车骑行导航。
不设置vehicle的值时,默认为0 普通骑行导航。两种骑行导航模式切换时,除了vehicle参数设置以外,其余骑行导航逻辑均不需要改变。

配置androidmanifest.xml文件

加入如下权限使用声明

<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(){
@override
publicvoidengineinitsuccess(){
//骑行导航初始化成功之后的回调
routeplanwithparam();
}
@override
publicvoidengineinitfail(){
//骑行导航初始化失败之后的回调
}
});
发起算路
1. 构造bikenavilaunchparam
//起终点位置
startpt =newlatlng(40.047416,116.312143);
endpt =newlatlng(40.048424,116.313513);
//构造bikenavilaunchparam
//.vehicle(0)默认的普通骑行导航
param =newbikenavilaunchparam().stpt(startpt).endpt(endpt).vehicle(0);
2. 发起算路

在算路成功的回调中跳转至诱导界面,示例代码如下

//发起算路
bikenavigatehelper.getinstance().routeplanwithparams(param,newibrouteplanlistener(){
@override
publicvoidonrouteplanstart(){
//执行算路开始的逻辑
}
@override
publicvoidonrouteplansuccess(){
//算路成功
//跳转至诱导页面
intent intent =newintent(bnavimainactivity.this,bnaviguideactivity.class);
startactivity(intent);
}
@override
publicvoidonrouteplanfail(bikerouteplanerror bikerouteplanerror){
//执行算路失败的逻辑
}
});
开始导航
1. 新建诱导activity,创建诱导view,开始导航

示例代码如下:

//获取bikenavigatehelper示例
mnavihelper =bikenavigatehelper.getinstance();
// 获取诱导页面地图展示view
view view = mnavihelper.oncreate(bnaviguideactivity.this);
if(view !=null){
setcontentview(view);
}
// 开始导航
mnavihelper.startbikenavi(bnaviguideactivity.this);
2. 正确管理bikenavigatehelper的生命周期:
@override
protectedvoidonresume(){
super.onresume();
mnavihelper.resume();
}
@override
protectedvoidonpause(){
super.onpause();
mnavihelper.pause();
}
@override
protectedvoidondestroy(){
super.ondestroy();
mnavihelper.quit();
}

完成以上步骤,即可在您的应用实现骑行导航。
效果如图:

导航状态信息

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

// 设置诱导监听, 具体诱导信息请参考javadoc类参考
// com.baidu.mapapi.bikenavi.adapter -> ibrouteguidancelistener
mnavihelper.setrouteguidancelistener(this,newibrouteguidancelistener(){
@override
publicvoidonrouteguideiconupdate(drawable icon){
//诱导图标更新
}
@override
publicvoidonrouteguidekind(routeguidekind routeguidekind){
//诱导类型枚举
}
@override
publicvoidonroadguidetextupdate(charsequence charsequence,charsequence charsequence1){
//诱导信息
}
@override
publicvoidonremaindistanceupdate(charsequence charsequence){
//总的剩余距离
}
@override
publicvoidonremaintimeupdate(charsequence charsequence){
//总的剩余时间
}
@override
publicvoidongpsstatuschange(charsequence charsequence,drawable drawable){
//gps状态发生变化,来自诱导引擎的消息
}
@override
publicvoidonroutefaraway(charsequence charsequence,drawable drawable){
//已经开始偏航
}
@override
publicvoidonrouteplanyawing(charsequence charsequence,drawable drawable){
//偏航规划中
}
@override
publicvoidonreroutecomplete(){
//重新算路成功
}
@override
publicvoidonarrivedest(){
//到达目的地
}
@override
publicvoidonvibrate(){
//震动
}
@override
publicvoidongetroutedetailinfo(bikeroutedetailinfo bikeroutedetailinfo){
//获取骑行导航路线详细信息类
}
});
获取语音播报文本

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

mnavihelper.setttsplayer(newibttsplayer(){
/**
* 获取导航过程中语音,进行播报
* @param s 播报语音文本
* @param b 是否抢占播报
*/
@override
public int playttstext(string s, boolean b){
//调用语音识别sdk的语音回调进行播报
return0;
}
});

上一篇

室内路线规划

下一篇

步行导航

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

网站地图