自v4.2.0起,新增普通骑行导航功能,支持骑行导航、偏航纠正等功能。
自v4.4.0起,新增电动车骑行导航,即BaiduMapsSDK同时支持普通自行车骑行导航(简称:普通骑行导航)和电动车骑行导航BaiduMapAndroidSDK默认为普通骑行导航,旧版用户不受影响。
自v4.4.0起,将骑行导航参数类的类名BikeNaviLauchParam修改为BikeNaviLaunchParam
自v5.0.0起,支持全球200多个国家和地区的骑行导航,无需单独申请即可直接使用。
骑行导航骑包括普通骑行导航和电动车骑行导航两种导航模式,默认为普通骑行导航,旧版用户不受影响。
1、电动车规避电动车禁行路段,避免罚款;普通骑行更适用于自行车。
2、电动车路线规划倾向于走大路,方便寻路,适于快速通行。
3、电动车语音播报返回的文字,针对电动车场景进行优化。
vehicle :0:普通骑行导航 ; 1:电动车骑行导航。
不设置vehicle的值时,默认为0 普通骑行导航。两种骑行导航模式切换时,除了vehicle参数设置以外,其余骑行导航逻辑均不需要改变。
加入如下权限使用声明
<!-- 这个权限用于访问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() {@Overridepublic void engineInitSuccess() {//骑行导航初始化成功之后的回调routePlanWithParam();}@Overridepublic void engineInitFail() {//骑行导航初始化失败之后的回调}});
//起终点位置startPt = new LatLng(40.047416,116.312143);endPt = new LatLng(40.048424, 116.313513);//构造BikeNaviLaunchParam//.vehicle(0)默认的普通骑行导航mBikeParam = new BikeNaviLaunchParam().startNodeInfo(startPt).endNodeInfo(endPt).vehicle(0);
在算路成功的回调中跳转至诱导界面,示例代码如下
//发起算路BikeNavigateHelper.getInstance().routePlanWithRouteNode(mBikeParam, new IBRoutePlanListener() {@Overridepublic void onRoutePlanStart() {//执行算路开始的逻辑}@Overridepublic void onRoutePlanSuccess() {//算路成功//跳转至诱导页面Intent intent = new Intent(BNaviMainActivity.this, BNaviGuideActivity.class);startActivity(intent);}@Overridepublic void onRoutePlanFail(BikeRoutePlanError bikeRoutePlanError) {//执行算路失败的逻辑}});
示例代码如下:
//获取BikeNavigateHelper示例mNaviHelper = BikeNavigateHelper.getInstance();// 获取诱导页面地图展示ViewView view = mNaviHelper.onCreate(BNaviGuideActivity.this);if (view != null) {setContentView(view);}// 开始导航mNaviHelper.startBikeNavi(BNaviGuideActivity.this);
@Overrideprotected void onResume() {super.onResume();mNaviHelper.resume();}@Overrideprotected void onPause() {super.onPause();mNaviHelper.pause();}@Overrideprotected void onDestroy() {super.onDestroy();mNaviHelper.quit();}
完成以上步骤,即可在您的应用实现骑行导航。
效果如图:
通过IBRouteGuidanceListener接口各种回调方法开发者可以对导航状态进行相应处理,主要包括导航开始、到达目的地,导航过程中偏航、偏航规划,诱
导信息(诱导图标、诱导信息、诱导类型、剩余时间、剩余距离、震动等)
示例代码如下:
// 设置诱导监听, 具体诱导信息请参考javadoc类参考// com.baidu.mapapi.bikenavi.adapter -> IBRouteGuidanceListenermNaviHelper.setRouteGuidanceListener(this, new IBRouteGuidanceListener() {@Overridepublic void onRouteGuideIconUpdate(Drawable icon) {//诱导图标更新}@Overridepublic void onRouteGuideKind(RouteGuideKind routeGuideKind) {//诱导类型枚举}@Overridepublic void onRoadGuideTextUpdate(CharSequence charSequence, CharSequence charSequence1) {//诱导信息}@Overridepublic void onRemainDistanceUpdate(CharSequence charSequence) {//总的剩余距离}@Overridepublic void onRemainTimeUpdate(CharSequence charSequence) {//总的剩余时间}@Overridepublic void onGpsStatusChange(CharSequence charSequence, Drawable drawable) {//GPS状态发生变化,来自诱导引擎的消息}@Overridepublic void onRouteFarAway(CharSequence charSequence, Drawable drawable) {//已经开始偏航}@Overridepublic void onRoutePlanYawing(CharSequence charSequence, Drawable drawable) {//偏航规划中}@Overridepublic void onReRouteComplete() {//重新算路成功}@Overridepublic void onArriveDest() {//到达目的地}@Overridepublic void onVibrate() {//震动}@Overridepublic void onGetRouteDetailInfo(BikeRouteDetailInfo bikeRouteDetailInfo) {//获取骑行导航路线详细信息类}});
上一篇
下一篇
本篇文章对您是否有帮助?