浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。

WebAPI文档全面上新

新增示例代码、在线运行等功能,帮助您实现快速接入,前往体验吧!

体验新版
更新时间:2020-06-23
骑行导航简介

自v4.2.0起,新增普通骑行导航功能,支持骑行导航、偏航纠正等功能。

自v4.4.0起,新增电动车骑行导航,即BaiduMapsSDK同时支持普通自行车骑行导航(简称:普通骑行导航)和电动车骑行导航BaiduMapAndroidSDK默认为普通骑行导航,旧版用户不受影响。

自v5.0.0起,支持全球200多个国家和地区的骑行导航,无需单独申请即可直接使用。
重要提示:自v4.4.0起,将骑行导航参数类的类名BikeNaviLauchParam修改为BikeNaviLaunchParam
下载开发包并配置开发环境

开发包的下载

注意:

1. 步骑行导航的开发包与普通地图服务的开发包下载时区别。

2. 将解压后的开发包中assets目录下的png文件拷贝到您的项目的assets目录下。
骑行导航模式

骑行导航骑包括普通骑行导航和电动车骑行导航两种导航模式,默认为普通骑行导航,旧版用户不受影响。

电动车骑行导航与普通骑行导航的区别:

1、电动车规避电动车禁行路段,避免罚款;普通骑行更适用于自行车。

2、电动车路线规划倾向于走大路,方便寻路,适于快速通行。

3、电动车语音播报返回的文字,针对电动车场景进行优化。

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

vehicle :0:普通骑行导航 ; 1:电动车骑行导航。

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


配置AndroidManifest.xml文件
加入如下权限使用声明
<!-- 这个权限用于访问GPS定位 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<!-- 获取访问手机振动器权限,用于导航过程中的震动提示 -->
<uses-permission android:name="android.permission.VIBRATE"/>
引擎初始化

在使用骑行导航功能前,需要对骑行引擎进行初始化。在初始化成功的回调中调用发起算路的逻辑。

2.在Application标签中声明定位的service组件

<service android:name="com.baidu.location.f"
    android:enabled="true"
    android:process=":remote"/>

示例代码如下:

// 获取导航控制类
// 引擎初始化
BikeNavigateHelper.getInstance().initNaviEngine(this, new IBEngineInitListener() {
    @Override
    public void engineInitSuccess() {
        //骑行导航初始化成功之后的回调
        routePlanWithParam();
    }

    @Override
    public void engineInitFail() {
        //骑行导航初始化失败之后的回调
    }
});

发起算路
1构造BikeNaviLaunchParam
//起终点位置
startPt = new LatLng(40.047416,116.312143);
endPt = new LatLng(40.048424, 116.313513);
//构造BikeNaviLaunchParam
//.vehicle(0)默认的普通骑行导航
param = new BikeNaviLaunchParam().stPt(startPt).endPt(endPt).vehicle(0);

2发起算路

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

//发起算路
BikeNavigateHelper.getInstance().routePlanWithParams(param, new IBRoutePlanListener() {
    @Override
    public void onRoutePlanStart() {
        //执行算路开始的逻辑
    }

    @Override
    public void onRoutePlanSuccess() {
        //算路成功
        //跳转至诱导页面
        Intent intent = new Intent(BNaviMainActivity.this, BNaviGuideActivity.class);
        startActivity(intent);
    }

    @Override
    public void onRoutePlanFail(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
protected void onResume() {
    super.onResume();
    mNaviHelper.resume();
}

@Override
protected void onPause() {
    super.onPause();
    mNaviHelper.pause();
}

@Override
protected void onDestroy() {
    super.onDestroy();
    mNaviHelper.quit();
}

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

效果如图:

bikenavi.jpg

导航状态信息

通过IBRouteGuidanceListener接口各种回调方法开发者可以对导航状态进行相应处理,主要包括导航开始、到达目的地,导航过程中偏航、偏航规划,诱

导信息(诱导图标、诱导信息、诱导类型、剩余时间、剩余距离、震动等)

示例代码如下:

// 设置诱导监听, 具体诱导信息请参考javadoc类参考
// com.baidu.mapapi.bikenavi.adapter -> IBRouteGuidanceListener
mNaviHelper.setRouteGuidanceListener(this, new IBRouteGuidanceListener() {
    @Override
    public void onRouteGuideIconUpdate(Drawable icon) {
        //诱导图标更新
    }

    @Override
    public void onRouteGuideKind(RouteGuideKind routeGuideKind) {
        //诱导类型枚举
    }

    @Override
    public void onRoadGuideTextUpdate(CharSequence charSequence, CharSequence charSequence1) {
        //诱导信息
    }

    @Override
    public void onRemainDistanceUpdate(CharSequence charSequence) {
        //总的剩余距离
    }

    @Override
    public void onRemainTimeUpdate(CharSequence charSequence) {
        //总的剩余时间
    }

    @Override
    public void onGpsStatusChange(CharSequence charSequence, Drawable drawable) {
        //GPS状态发生变化,来自诱导引擎的消息
    }

    @Override
    public void onRouteFarAway(CharSequence charSequence, Drawable drawable) {
        //已经开始偏航
    }

    @Override
    public void onRoutePlanYawing(CharSequence charSequence, Drawable drawable) {
        //偏航规划中
    }

    @Override
    public void onReRouteComplete() {
        //重新算路成功
    }

    @Override
    public void onArriveDest() {
        //到达目的地
    }

    @Override
    public void onVibrate() {
        //震动
    }

    @Override
    public void onGetRouteDetailInfo(BikeRouteDetailInfo bikeRouteDetailInfo) {
        //获取骑行导航路线详细信息类
    }
});

获取语音播报文本

SDK只提供导航过程中的文本输出,不包含语音播报功能,需要自行传入对应的语音回调,形成播报功能。建议使用百度语音识别服务SDK。

下载地址: 百度语音识别服务

设置播报监听,使用语音回调播报。

注意:该接口需要在startBikeNavi方法之前调用。

示例代码如下:

mNaviHelper.setTTsPlayer(new IBTTSPlayer() {
    /**
     * 获取导航过程中语音,进行播报
     * @param s 播报语音文本
     * @param b 是否抢占播报
     */
    @Override
    public int playTTSText(String s, boolean b) {
        //调用语音识别SDK的语音回调进行播报
        return 0;
    }
});



  • 文档根本没法用

  • 文档水平很差

  • 文档水平一般

  • 文档不错

  • 文档写的很好

如发现文档错误,或对此文档有更好的建议,请在下方反馈。问题咨询请前往反馈平台提交工单咨询。

提交反馈

拖动标注工具

添加矩形标注

添加箭头标注

完成

取消