简介
自v4.2.0起,新增普通骑行导航功能,支持骑行导航、偏航纠正等全部功能。
自v4.4.0起,新增电动车骑行导航,同时支持普通自行车骑行导航(简称:普通骑行导航)和电动车骑行导航,默认为普通骑行导航,旧版用户不受影响。
功能展示
//通过设置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(0);
// 使用骑行导航前,需要初始化骑行导航引擎。
BikeNavigateHelper.getInstance().initNaviEngine(this, new IBEngineInitListener() {
@Override
public void engineInitSuccess() {
Log.d(LTAG, "引擎初始化成功");
routePlanWithParam();
}
@Override
public void engineInitFail() {
Log.d(LTAG, "引擎初始化失败");
}
});
/**
* 算路设置起、终点参数,然后在回调函数中设置跳转至诱导页面
* 开始算路
*/
public void routePlanWithParam() {
param = new BikeNaviLaunchParam().stPt(startPt).endPt(endPt);
BikeNavigateHelper.getInstance().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
//创建诱导View,并接收回调事件。在activity生命周期内调用诱导BikeNavigateHelper对应的生命周期函数。
View view = mNaviHelper.onCreate(BNaviGuideActivity.this);
if (view != null) {
setContentView(view);
}
// 开始导航
mNaviHelper.startBikeNavi(BNaviGuideActivity.this);
// 设置诱导监听, 主要包括导航开始、结束,导航过程中偏航、偏航结束、诱导信息(包含诱导默认图标、诱导类型、诱导信息、剩余距离、时间、振动回调等。
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。
//获取语音播报文本方法(注:该接口需要在startWalkNavi方法之前调用,否则不会有回调):
mNaviHelper.setTTsPlayer(new IBTTSPlayer() {
/**
* 诱导文本回调
* @param s 诱导文本
* @param b 是否抢先播报
* @return
*/
@Override
public int playTTSText(String s, boolean b) {
return 0;
}
});