百度导航SDK提供了一些接口用于控制导航状态,并区分为通用设置和专业导航设置。
普通导航IBNOuterSettingManager.IBNCommonSetting中可设置的接口如下:
interface IBNCommonSetting { /** * 设置是否开启多路线 * * @param isMultiRoute 为true开启多路线,false关闭多路线 */ void setMultiRouteEnable(boolean isMultiRoute); /** * 获取是否开启了多路线 * * @return */ boolean isMultiRouteEnable(); /** * 定制化起点、终点、当前位置icon * * @param pngBitmap * @param imageType 类型: * {@linkplain DIYImageType#CarLogo} 车标 * {@linkplain DIYImageType#StartPoint} 路线起点 * {@linkplain DIYImageType#EndPoint} 路线终点 * * @return */ boolean setDIYImageToMap(Bitmap pngBitmap, int imageType); /** * 清除定制icon * * @param imageType 类型: * {@linkplain DIYImageType#CarLogo} 车标 * {@linkplain DIYImageType#StartPoint} 路线起点 * {@linkplain DIYImageType#EndPoint} 路线终点 * * @return */ boolean clearDIYImage(int imageType); /** * 设置起点、终点、当前位置显示状态 * * @param status * @param imageType 类型: * {@linkplain DIYImageType#CarLogo} 车标 * {@linkplain DIYImageType#StartPoint} 路线起点 * {@linkplain DIYImageType#EndPoint} 路线终点 * * @return */ boolean setDIYImageStatus(boolean status, int imageType); /** * 设置算路偏好 * * @param mode 算路偏好类型: * {@linkplcain NeRoutePlanPreference#ROUTE_PLAN_PREFERENCE_INVALID} 无效值 * {@linkplain NeRoutePlanPreference#ROUTE_PLAN_PREFERENCE_DEFAULT} 默认,智能推荐 * {@linkplain NeRoutePlanPreference#ROUTE_PLAN_PREFERENCE_NOHIGHWAY} 不走高速 * {@linkplain NeRoutePlanPreference#ROUTE_PLAN_PREFERENCE_NOTOLL} 少收费 * {@linkplain NeRoutePlanPreference#ROUTE_PLAN_PREFERENCE_AVOID_TRAFFIC_JAM} 躲避拥堵 * {@linkplain NeRoutePlanPreference#ROUTE_PLAN_PREFERENCE_CAR_NUM} 使用车牌 * {@linkplain NeRoutePlanPreference#ROUTE_PLAN_PREFERENCE_DISTANCE_FIRST} 距离最短,距离优先 * {@linkplain NeRoutePlanPreference#ROUTE_PLAN_PREFERENCE_TIME_FIRST} 时间最短,时间优先 * {@linkplain NeRoutePlanPreference#ROUTE_PLAN_PREFERENCE_ROAD_FIRST} 大路优先,高速优先 * * @return */ boolean setRouteSortMode(int mode); /** * 获取当前算路偏好 * * @return */ int getRouteSortMode(); /** * 设置车牌 * * @param context 上下文 * @param carNum 完整车牌,如:"粤B66666" * * @return */ boolean setCarNum(Context context, String carNum); /** * 停止百度导航对系统的定位监听 */ void stopLocationMonitor(); }
专业导航IBNOuterSettingManager.IBNProfessionalNaviSetting可设置的接口如下:
interface IBNProfessionalNaviSetting { /** * 设置专业导航视角 * * @param mode 视角类型: * {@linkplain NaviPerspectiveMode#CAR_3D} 跟随车头模式 * {@linkplain NaviPerspectiveMode#NORTH_2D} 正北朝上模式 */ void setGuideViewMode(int mode); /** * 获取当前专业导航视角类型 * * @return */ int getGuideViewMode(); /** * 设置专业导航日夜模式 * * @param mode 日夜模式: * {@linkplain DayNightMode#DAY_NIGHT_MODE_AUTO} 自动切换白天黑夜模式 * {@linkplain DayNightMode#DAY_NIGHT_MODE_DAY} 日间模式 * {@linkplain DayNightMode#DAY_NIGHT_MODE_NIGHT} 夜间模式 */ void setDayNightMode(int mode); /** * 获取当前设置的日夜模式类型 * * @return */ int getDayNightMode(); /** * 设置专业导航右下角图面显示类型 * * @param mode 显示类型: * {@linkplain PreViewMode#MapMini} 全览小窗 * {@linkplain PreViewMode#RoadBar} 路况条 * {@linkplain PreViewMode#NoAll} 不显示 */ void setFullViewMode(int mode); /** * 获取专业导航右下角图面显示类型 * * @return */ int getFullViewMode(); /** * 设置专业导航比例尺是否智能缩放 * * @param isAutoScale 为true则设置智能缩放,false不设置 */ void setAutoScale(boolean isAutoScale); /** * 获取当前是否设置专业导航比例尺智能缩放 * * @return */ boolean isAutoScale(); /** * 设置专业导航是否显示车标到终点红色连线 * * @param showCarLogoToEndRedLine 为true则设置连线,false不设置 */ void setShowCarLogoToEndRedLine(boolean showCarLogoToEndRedLine); /** * 获取当前是否设置车标到终点红色连线 * * @return */ boolean isShowCarLogoToEndRedLine(); /** * 设置专业导航是否显示路口放大图 * * @param showRoadEnlargeView 为true则设置显示放大图,false不设置 */ void setShowRoadEnlargeView(boolean showRoadEnlargeView); /** * 获取当前是否显示路口放大图 * * @return */ boolean isShowRoadEnlargeView(); /** * 设置到达目的地时,导航是否自动退出 */ void setIsAutoQuitWhenArrived(boolean auto); /** * 获取实时路况是否开启 */ boolean isRealRoadConditionOpen(); /** * 设置实时路况是否开启 * @param open */ void setRealRoadCondition(boolean open); /** * 设置播报模式 * @param voiceMode */ void setVoiceMode(int voiceMode); /** * 设置是否显示主辅路和高架桥按钮 * @param show */ void setShowMainAuxiliaryOrBridge(boolean show); /** * 设置导航底图车标偏移,仅针对专业导航Car3D竖屏模式有效,,底图中心为(0, 0)原点 * * @param xOffset 导航底图车标x偏移量,> 0时往右偏移,单位:像素 * @param yOffset 导航底图车标y偏移量,< 0时往下偏移,单位:像素 */ void setCarIconOffsetForNavi(int xOffset, int yOffset); /** * 设置专业导航全览时路线距离屏幕边距 * * @param left 左边距,路线全览左侧边距,单位px * @param top 上边距,路线全览上侧边距,单位px * @param right 右边距,路线全览右侧边距,单位px * @param bottom 下边距,路线全览下侧边距,单位px */ void setFullViewMarginSize(final int left, final int top, final int right, final int bottom); /** * 路线偏好功能入口是否开放 * 注意:进专业导航之前设置生效,且是单次生效 */ void enableRouteSort(boolean enable); /** * 沿途检索功能入口是否开放 * 注意:进专业导航之前设置生效,且是单次生效 */ void enableRouteSearch(boolean enable); /** * 底部bar是否支持展开 * @param enable */ void enableBottomBarOpen(boolean enable); /** * 更多设置功能入口是否开放 * 注意:进专业导航之前设置生效,且是单次生效 */ void enableMoreSettings(boolean enable); /** * 设置进导航时是否全览,默认为不全览 * 该全览只是5s全览,随后会进入导航态 * @param fullView true 全览 */ void setStartByFullView(boolean fullView); /** * 偏航提示音开关 */ void setYawSoundEnable(boolean enable); }