您当前的位置: Android SDK > 开发指南 > 骑行导航
骑行导航

关于开发包

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

获取语音播报文本:

此组件只提供导航过程中的文本输出,不包含语音播报功能,需要自行传入对应的语音回调,形成播报功能。建议使用百度语音识别服务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;
    }
});

通过输入起点、终点,可以发起路线规划,并进入导航。

引擎初始化

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

使用方法说明

// 获取导航控制类
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 BikeNaviLauchParam().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) {

    }
});