浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。
百度导航驾车页提供了一套接口和示例UI,开发者可根据Demo中的驾车页页面UI进行开发。
1生命周期
路线规划成功后,就可以使用驾车页BaiduNaviManagerFactory.getRouteResultManager(),驾车页依赖App的页面生命周期,开发时,只需要将百度导航SDK驾车页生命周期接口挂接到对应页面的生命周期接口即可,App页面既可以是Activity,也可以是Fragment等。生命周期如下
   
/**
* 在{@linkplain Activity#onCreate()}} 或者 {@linkplain Fragment#onCreateView()}} 中调用
*/
void onCreate(Context context);
 
/**
* 在{@linkplain Activity#onResume()}} 或者 {@linkplain Fragment#onResume()}} 中调用
*/
void onResume();
 
/**
* 在{@linkplain Activity#onPause()}} 或者 {@linkplain Fragment#onPause()}} 中调用
*/
void onPause();
 
/**
* 在{@linkplain Activity#onDestroy()}} 或者 {@linkplain Fragment#onDestroy()}} 中调用
*/
void onDestroy();

2其他接口说明

1.全览路线
/**
 * 全览当前路线
 */
void fullView();
2.开启专业导航
无需重新算路,直接跳转新页面调用专业导航生命周期即可,可参考demo。
/**
 * 开启专业导航
 *
 * @return 返回true,代表可以跳转至专业导航
 */
boolean startNavi();
3.路线点击事件
路线规划成功后通常情况下会出现3条路线,该接口可监听某条路线是否被点击,如果被点击可调用BaiduNaviManagerFactory.getRouteGuideManager().selectRoute(index)高亮并选中该条路线。
/**
 * 路线点击事件监听
 */
void setRouteClickedListener(IRouteClickedListener listener);
 
/**
 * 路线点击事件
 */
 nterface IRouteClickedListener {
 
   /**
     * 点击了第几条
     * @param index
     */
    void routeClicked(int index);
 }

4.获取3Tab信息、路线详情和限行消息
/**
* 获取3Tab信息和路线详情
*/
Bundle getRouteInfo();

返回的bundle中数据如下,具体使用方法可以参考demo。
 // 3Tab信息 
ArrayList<BNRoutePlanItem> mRoutePlanItems = bundle.getParcelableArrayList(BNaviCommonParams.BNRouteInfoKey.INFO_TAB);

// 路线详情
Bundle mRouteDetails = bundle.getBundle(BNaviCommonParams.BNRouteInfoKey.INFO_ROUTE_DETAIL);
// 第一条路线的路线详情
ArrayList<BNRouteDetail> detail0 = mRouteDetails.<BNRouteDetail>getParcelableArrayList("0");
// 第二条路线的路线详情
ArrayList<BNRouteDetail> detail1 = mRouteDetails.<BNRouteDetail>getParcelableArrayList("1");
// 第三条路线的路线详情
ArrayList<BNRouteDetail> detail2 = mRouteDetails.<BNRouteDetail>getParcelableArrayList("2");

// 限行消息
ArrayList<String> limitInfos = bundle.getStringArrayList(BNaviCommonParams.BNRouteInfoKey.TRAFFIC_LIMIT_INFO);
if (limitInfos != null) {
    for (int i = 0; i < limitInfos.size(); i++) {
        String[] arr = limitInfos.get(i).split(",");
        Log.e("TAG", "第" + arr[0] + "条路线限行消息:" + arr[1]);
    }
}

3驾车页设置
驾车页设置BaiduNaviManagerFactory.getRouteResultSettingManager()接口如下
/**
* 设置实时路况是否开启
*/
void setRealRoadCondition(Context context);

/**
* 获取实时路况是否开启
*/
boolean isRealRoadConditionOpen();
 
/**
* 设置全览路线边距
* @param left
* @param top
* @param right
* @param bottom
*/
void setRouteMargin(int left, int top, int right, int bottom);

4驾车页小黄条
小黄条需要开发者提供一个容器,通过驾车页接口将小黄条添加至容器即可显示。示例如下:
FrameLayout ybContainer = mRootView.findViewById(R.id.yb_container);
BaiduNaviManagerFactory.getRouteResultManager().addYellowTipsToContainer(ybContainer);
5长途功能
驾车页支持长途功能途径市、途径路、服务区、检查站、天气五个功能。IBNRouteResultManager具体接口如下:
/**
* 处理长途途径市按钮的点击
*
* @param  checked 按钮是否选中
*/
void handleCityClick(boolean checked);
   
/**
* 处理长途途径路按钮的点击
*
* @param  checked 按钮是否选中
*/
void handleRouteClick(boolean checked);
   
/**
* 处理长途途径服务区按钮的点击
*
* @param  checked 按钮是否选中
*/
void handleServiceClick(boolean checked);
 
/**
* 处理长途检查站按钮的点击
*
* @param  checked 按钮是否选中
*/
void handleCheckpointClick(boolean checked);

/**
* 处理长途天气按钮的点击
* 
* @param  checked 按钮是否选中
*/
void handleWeatherClick(boolean checked);

用户可以在页面中创建五个按钮,记录按钮的点击状态,当点击相关按钮时将点击状态传入相关方法,路线就会显示相关的长途信息。可参考demo中LongDistanceController类。

注:由于点击路线上的长途信息(比如点击了某个服务区)可以添加途径点,添加途径点算路是由s d k内部算路的,开发者如果需要监听算路消息需要通过下面方法进行监听
BaiduNaviManagerFactory.getRouteResultManager().setCalcRouteByViaListener(
  new IBNRouteResultManager.ICalcRouteByViaListener() {
      @Override
      public void onStart() {
          Log.e(TAG, "开始算路");
      }
  
      public void onSuccess() {
          Log.e(TAG, "算路成功");
      }
  
      @Override
      public void onFailed(int errorCode) {
          Log.e(TAG, "算路失败");
      }
  });
  • 文档根本没法用

  • 文档水平很差

  • 文档水平一般

  • 文档不错

  • 文档写的很好

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

提交反馈

拖动标注工具

添加矩形标注

添加箭头标注

完成

取消