导航UI自定义能力,将手图自定义导航的能力通过 SDK 接口暴露,支持日夜模式切换、实时路况显示方式配置、地图元素(路口放大图、车道信息、速度显示、路名、车标罗盘、红色引导线等)的显隐控制。所有配置支持按车辆类型(驾车/新能源/货车/摩托车)分别存储,满足不同出行场景下的个性化配置需求。
export interface BNINaviUIConfigInterface {// 日夜模式setDayNightMode(mode: number, vehicleType?: BNRoutePlanModeType): void;getDayNightMode(vehicleType?: BNRoutePlanModeType): number;// 实时路况显示模式setTrafficDisplayMode(mode: number, vehicleType?: BNRoutePlanModeType): void;getTrafficDisplayMode(vehicleType?: BNRoutePlanModeType): number;// 地图元素显隐控制setShowRoadEnlargeView(isShow: boolean, vehicleType?: BNRoutePlanModeType): void;getShowRoadEnlargeView(vehicleType?: BNRoutePlanModeType): boolean;setShowTraffic(isShow: boolean, vehicleType?: BNRoutePlanModeType): void;getShowTraffic(vehicleType?: BNRoutePlanModeType): boolean;setShowLaneInfo(isShow: boolean, vehicleType?: BNRoutePlanModeType): void;getShowLaneInfo(vehicleType?: BNRoutePlanModeType): boolean;setShowSpeedView(isShow: boolean, vehicleType?: BNRoutePlanModeType): void;getShowSpeedView(vehicleType?: BNRoutePlanModeType): boolean;setShowRoadName(isShow: boolean, vehicleType?: BNRoutePlanModeType): void;getShowRoadName(vehicleType?: BNRoutePlanModeType): boolean;setShowCarLogoCompass(isShow: boolean, vehicleType?: BNRoutePlanModeType): void;getShowCarLogoCompass(vehicleType?: BNRoutePlanModeType): boolean;setShowCarLogoToEndRedLine(isShow: boolean, vehicleType?: BNRoutePlanModeType): void;getShowCarLogoToEndRedLine(vehicleType?: BNRoutePlanModeType): boolean;}
设置日夜模式
**参数说明**:
`mode`: 日夜模式
`0` = 白天
`1` = 黑夜
`2` = 自动
`vehicleType`(可选): 车辆类型,默认为 `BNRoutePlanModeType.Car`
**存储机制**:配置会持久化存储到本地设备,按车辆类型分别存储。
获取日夜模式
**参数说明**:
`vehicleType`(可选): 车辆类型,默认为 `BNRoutePlanModeType.Car`
**返回值说明**:
`0` = 白天
`1` = 黑夜
`2` = 自动
**特点**:
返回持久化存储的配置值
按车辆类型返回对应配置
设置实时路况显示模式
**参数说明**:
`mode`: 路况显示模式
`0` = 简约路况条
`1` = 全览小窗
`2` = 智能路况条
`vehicleType`(可选): 车辆类型,默认为 `BNRoutePlanModeType.Car`
**存储机制**:配置会持久化存储到本地设备,按车辆类型分别存储。
获取实时路况显示模式
**参数说明**:
`vehicleType`(可选): 车辆类型,默认为 `BNRoutePlanModeType.Car`
**返回值说明**:
`0` = 简约路况条
`1` = 全览小窗
`2` = 智能路况条
**特点**:
返回持久化存储的配置值
按车辆类型返回对应配置
以下方法用于控制导航过程中各类地图元素的显示和隐藏,所有配置均支持按车辆类型分别存储。
**存储机制**:所有配置均会持久化存储到本地设备,按车辆类型分别存储。
import { BNRoutePlanModeType } from '@ohos/baidunavigation';// 获取导航UI配置能力实例const naviUIConfig = sdkService.naviUIConfig;// 设置日夜模式为黑夜(使用默认车辆类型 - 驾车)naviUIConfig.setDayNightMode(1);// 检查日夜模式状态const dayNightMode = naviUIConfig.getDayNightMode();console.log(`当前日夜模式:${dayNightMode === 0 ? '白天' : dayNightMode === 1 ? '黑夜' : '自动'}`);// 设置路况显示模式为全览小窗naviUIConfig.setTrafficDisplayMode(1);// 隐藏路口放大图naviUIConfig.setShowRoadEnlargeView(false);// 显示实时路况naviUIConfig.setShowTraffic(true);
import { BNRoutePlanModeType } from '@ohos/baidunavigation';const naviUIConfig = sdkService.naviUIConfig;// 为驾车模式配置naviUIConfig.setDayNightMode(2, BNRoutePlanModeType.Car); // 自动模式naviUIConfig.setTrafficDisplayMode(2, BNRoutePlanModeType.Car); // 智能路况条naviUIConfig.setShowSpeedView(true, BNRoutePlanModeType.Car); // 显示速度控件// 为新能源模式配置naviUIConfig.setDayNightMode(0, BNRoutePlanModeType.Energy); // 白天模式naviUIConfig.setTrafficDisplayMode(1, BNRoutePlanModeType.Energy); // 全览小窗naviUIConfig.setShowSpeedView(false, BNRoutePlanModeType.Energy); // 隐藏速度控件// 为货车模式配置naviUIConfig.setDayNightMode(1, BNRoutePlanModeType.Truck); // 黑夜模式naviUIConfig.setShowCarLogoToEndRedLine(true, BNRoutePlanModeType.Truck); // 显示红色引导线
// 场景1: 简约导航UI - 适用于熟悉路线的场景const naviUIConfig = sdkService.naviUIConfig;naviUIConfig.setShowRoadEnlargeView(false); // 隐藏路口放大图naviUIConfig.setShowLaneInfo(false); // 隐藏车道信息naviUIConfig.setShowRoadName(false); // 隐藏路名信息naviUIConfig.setTrafficDisplayMode(0); // 简约路况条// 场景2: 完整导航UI - 适用于陌生路线的场景naviUIConfig.setShowRoadEnlargeView(true); // 显示路口放大图naviUIConfig.setShowLaneInfo(true); // 显示车道信息naviUIConfig.setShowRoadName(true); // 显示路名信息naviUIConfig.setShowCarLogoCompass(true); // 显示车标罗盘naviUIConfig.setTrafficDisplayMode(1); // 全览小窗// 场景3: 夜间驾驶模式naviUIConfig.setDayNightMode(1); // 黑夜模式naviUIConfig.setShowSpeedView(true); // 显示速度控件(夜间注意限速)naviUIConfig.setShowCarLogoToEndRedLine(true); // 显示红色引导线(增强可见性)
const naviUIConfig = sdkService.naviUIConfig;// 查询驾车模式的配置const carDayNightMode = naviUIConfig.getDayNightMode(BNRoutePlanModeType.Car);const carTrafficMode = naviUIConfig.getTrafficDisplayMode(BNRoutePlanModeType.Car);const showRoadEnlarge = naviUIConfig.getShowRoadEnlargeView(BNRoutePlanModeType.Car);console.log(`驾车模式配置:`);console.log(`- 日夜模式: ${carDayNightMode}`);console.log(`- 路况显示: ${carTrafficMode}`);console.log(`- 路口放大图: ${showRoadEnlarge ? '显示' : '隐藏'}`);// 查询新能源模式的配置const energyDayNightMode = naviUIConfig.getDayNightMode(BNRoutePlanModeType.Energy);console.log(`新能源模式日夜模式: ${energyDayNightMode}`);
上一篇
下一篇