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

Android 地图SDK

百度地图SDK是一套应用程序接口, 通过调用地图SDK接口,开发者可以轻松访问百度地图的服务和数据,构建功能丰富、交互性强的地图类应用程序。

骑行导航简介

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

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

重要提示:自v4.4.0起,将骑行导航参数类的类名BikeNaviLauchParam修改为BikeNaviLaunchParam

下载开发包

此功能位于 骑行导航“(bikenavi)”组件。为支持骑行导航功能,选择基础地图组件时,需要使用map for bikenavi的版本。
如使用一体化下载平台http://lbsyun.baidu.com/sdk/download,单独选择【骑行导航(含基础地图)】下载即可,将自动为您下载对应全部组件包含map for bikenavi。

骑行导航模式

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

电动车与普通骑行导航有以下不同:

1、电动车规避电动车禁行路段,避免罚款;普通骑行更适用于自行车。
2、电动车路线规划倾向于走大路,方便寻路,适于快速通行。
3、电动车语音播报返回的文字,针对电动车场景进行优化。

通过设置BikeNaviLaunchParam对象中的vehicle的值区分:vehicle :0:普通骑行导航 ; 1:电动车骑行导航。

不设置vehicle的值时,默认为0 普通骑行导航

startPt = new LatLng(40.047416,116.312143);
endPt = new LatLng(40.048424, 116.313513);
param = new BikeNaviLaunchParam().stPt(startPt).endPt(endPt).vehicle(1);

除了骑行导航vehicle参数设置以外,其余骑行导航逻辑均不需要改变。

引擎初始化

使用骑行导航前,需要骑行引擎初始化。

使用方法说明

// 获取导航控制类
mNaviHelper = BikeNavigateHelper.getInstance();
// 引擎初始化
mNaviHelper.initNaviEngine(this, new IBEngineInitListener() {
    @Override
    public void engineInitSuccess() {
        Log.d(LTAG, "引擎初始化成功");
        routePlanWithParam();
    }

    @Override
    public void engineInitFail() {
        Log.d(LTAG, "引擎初始化失败");
    }
});

发起算路

算路设置起、终点参数,然后在回调函数中设置跳转至诱导页面

使用方法说明

/**
 * 开始算路
 */
private void routePlanWithParam() {
    param = new BikeNaviLaunchParam().stPt(startPt).endPt(endPt);
    mNaviHelper.routePlanWithParams(param, new IBRoutePlanListener() {
        @Override
        public void onRoutePlanStart() {
            Log.d(LTAG, "开始算路");
        }

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

        @Override
        public void onRoutePlanFail(BikeRoutePlanError error) {
            Log.d(LTAG, "算路失败");
        }

    });
}

开始导航

创建诱导View,并接收回调事件。在activity生命周期内调用诱导BikeNavigateHelper对应的生命周期函数。

使用方法说明

// 获取诱导页面地图展示View

View view = mNaviHelper.onCreate(BNaviGuideActivity.this);

if (view != null) {
    setContentView(view);
}

// 开始导航
mNaviHelper.startBikeNavi(BNaviGuideActivity.this);

导航状态信息

主要包括导航开始、结束,导航过程中偏航、偏航结束、诱导信息(包含诱导默认图标、诱导类型、诱导信息、剩余距离、时间、振动回调等)。 关键代码如下:

使用方法说明

// 设置诱导监听, 具体诱导信息请参考javadoc
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) {

    }

    @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。

下载地址:http://yuyin.baidu.com/asr/download

获取语音播报文本方法:

// 设置诱导信息回调监听

mNaviHelper.setTTsPlayer(new IBTTSPlayer() {

    /**
     * 诱导文本回调
     * @param s 诱导文本
     * @param b 是否抢先播报
     * @return
     */
    @Override
    public int playTTSText(String s, boolean b) {
        return 0;
    }
});