Car Kit提供地图导航聚合能力集,对外提供包括发起/结束导航操作、导航信息、TBT信息、仪表/ARHUD信息界面基类等导航聚合能力集接口。以SystemAbility形式部署在手机上。
起始版本: 4.1.0(11)
导入模块
import { navigationInfoMgr } from '@kit.CarKit';
NavigationStatus
该类为导航信息状态对象,定义了导航的状态信息,包括地图状态、导航类型、导航目的地、导航途经点、路线、地图和主题等。
系统能力: SystemCapability.CarService.NavigationInfo
起始版本: 4.1.0(11)
名称 | 类型 | 只读 | 可选 | 说明 |
---|---|---|---|---|
status | [MapStatus] | 否 | 否 | 地图状态。 |
naviType | [NaviType] | 否 | 否 | 导航类型。 |
destLocation | [Location] | 否 | 否 | 当status是MapStatus.NAVIGATION时,该字段表示目的地地址。当status是MapStatus.POI时,该字段表示POI信息。当status是MapStatus.CRUISE时,该字段表示CRUISE信息。当status是MapStatus.IDLE时,该字段无实际意义。当status是MapStatus.ROUTE时,该字段表示目的地地址。当status是MapStatus.UNAVAILABLE时,该字段无实际意义。 |
passPoint | [Location] | 否 | 否 | 途经点数组。 |
routeIndex | number | 否 | 否 | 路线编号,大于等于0。 |
routePreference | [RoutePreference] | 否 | 否 | 路线偏好。 |
theme | [ThemeType] | 否 | 否 | 地图主题色。 |
customData | String | 否 | 否 | 自定义数据。 |
MapStatus
地图状态枚举值,列举出地图具体的状态。
系统能力: SystemCapability.CarService.NavigationInfo
起始版本: 4.1.0(11)
名称 | 值 | 说明 |
---|---|---|
IDLE | 0 | 地图处于空闲态。说明:地图应用未启动时,默认为该值。 |
NAVIGATION | 1 | 地图处于导航中。 |
CRUISE | 2 | 地图处于巡航中。 |
POI | 3 | 地图处于地图选点状态。 |
ROUTE | 4 | 地图处于路线选择状态。 |
UNAVAILABLE | 5 | 地图服务不可用。说明地图应用内部错误无法提供服务时,设置该值。 |
NaviType
导航类型枚举值。
系统能力: SystemCapability.CarService.NavigationInfo
起始版本: 4.1.0(11)
名称 | 值 | 说明 |
---|---|---|
DRIVING | 0 | 驾车类型。 |
MOTORCYCLE | 1 | 摩托车类型。 |
CYCLING | 2 | 骑行类型。 |
WALKING | 3 | 步行类型。 |
Location
地理位置坐标编码。
系统能力: SystemCapability.CarService.NavigationInfo
起始版本: 4.1.0(11)
名称 | 类型 | 只读 | 可选 | 说明 |
---|---|---|---|---|
name | string | 否 | 否 | 地址名称。 |
coordType | [LocationCoordType] | 否 | 否 | 地理位置坐标系编码。 |
longitude | number | 否 | 否 | 目的地经度,结合coordType使用。 |
latitude | number | 否 | 否 | 目的地纬度,结合coordType使用。 |
altitude | number | 否 | 否 | 目的地海拔高度,单位:m,默认值:0。 |
LocationCoordType
地理位置坐标系编码枚举值。
系统能力: SystemCapability.CarService.NavigationInfo
起始版本: 4.1.0(11)
名称 | 值 | 说明 |
---|---|---|
GCJ02 | 0 | 国内坐标编码。 |
WGS84 | 1 | 国际坐标编码。 |
RoutePreference
路线偏好枚举值。
系统能力: SystemCapability.CarService.NavigationInfo
起始版本: 4.1.0(11)
名称 | 值 | 说明 |
---|---|---|
INTELLIGENT_RECOMMENDATION | 0 | 智能推荐。 |
HIGHWAY_FIRST | 1 | 高速优先。 |
AVOID_HIGHWAY | 2 | 不走高速。 |
AVOID_CONGESTION | 3 | 躲避拥堵。 |
LESS_CHARGE | 4 | 少收费。 |
MAIN_ROAD_FIRST | 5 | 大路优先。 |
TIME_FIRST | 6 | 时间优先。 |
ThemeType
地图主题颜色枚举值。
系统能力: SystemCapability.CarService.NavigationInfo
起始版本: 4.1.0(11)
名称 | 值 | 说明 |
---|---|---|
LIGHT | 0 | 地图是浅色主题。 |
DARK | 1 | 地图是深色主题。 |
NavigationMetadata
该类为导航信息数据对象,定义了导航的数据信息,包括导航转向模式、引导距离、当前道路名、下一次进入道路名等。
系统能力: SystemCapability.CarService.NavigationInfo
起始版本: 4.1.0(11)
名称 | 类型 | 只读 | 可选 | 说明 |
---|---|---|---|---|
naviTurnMode | number | 否 | 否 | 导航转向模式,十六进制,取值范围0~3E7,按照16进制的格式传递。 |
segmentLeftDis | number | 否 | 否 | 下一次动作剩余距离,即引导距离,单位:m。 |
currentRoadName | string | 否 | 否 | 当前道路名。 |
nextRoadName | string | 否 | 否 | 下一次进入的道路名。 |
intersectionView | string | 否 | 否 | 路口放大图。图片的Base64字节编码值 。 |
viewWidth | number | 否 | 否 | 路口放大图片宽度,单位:像素。 |
viewHeight | number | 否 | 否 | 路口放大图片高度,单位:像素。 |
trafficLane | string | 否 | 否 | 车道线,从最左边到最右边按序排列。通讯以四位为一个单元进行解析,每个单元对应一个车道线,根据需求可以传多个车道线,图标编码为枚举值。 |
cameraSpeedLimitValid | boolean | 否 | 否 | 电子眼限速有效位。true表示有效,false表示无效。 |
cameraSpeedLimit | number | 否 | 否 | 电子眼限速值,单位:m/s。 |
naviSpeedLimitValid | boolean | 否 | 否 | 导航限速有效位。true表示有效,false表示无效。 |
naviSpeedLimit | number | 否 | 否 | 导航限速值,单位:m/s。 |
currentSpeed | number | 否 | 否 | 当前车速,单位:m/s。 |
naviBearing | number | 否 | 否 | 导航方向角度,即相对正北方的角度。 |
totalLeftDis | number | 否 | 否 | 全程剩余距离,单位:m。 |
remainingTime | number | 否 | 否 | 剩余时间,单位:min。 |
customData | Record<string, Object> | 否 | 是 | 按自定义模式传递导航元数据。起始版本: 5.0.0(12) |
SystemNavigationListener
系统导航监听回调。
系统能力:SystemCapability.CarService.NavigationInfo
起始版本:4.1.0(11)
onQueryNavigationInfo
onQueryNavigationInfo(query: QueryType, args: Record<string, Object>): Promise
应用收到系统的查询请求,然后通过Promise回调给系统。
系统能力:SystemCapability.CarService.NavigationInfo
起始版本:4.1.0(11)
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
query | [QueryType] | 是 | 查询命令。 |
args | Record<string, Object> | 是 | query参数的附加参数。 |
返回值:
类型 | 说明 |
---|---|
Promise<[ResultData]> | Promise对象,返回查询导航信息的结果。 |
onReceiveNavigationCmd
onReceiveNavigationCmd(command: CommandType, args: Record<string, Object>): Promise
应用收到系统发送的指令,然后通过Promise回调给系统。
系统能力: SystemCapability.CarService.NavigationInfo
起始版本: 4.1.0(11)
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
command | [CommandType] | 是 | 系统服务需要应用执行的命令。 |
args | Record<string, Object> | 是 | command参数为"startNavigation"或"stopNavigation"时使用,比如导航类型有:驾车导航、摩托车导航、骑行导航、步行导航等。“destLocation”:导航目的地,其参数类型为Location。与command参数等于"startNavigation"配合使用。“mapLayerDisplayId”:将地图图层启动到屏幕的displayId。与command参数等于"startMapLayer"或"stopMapLayer"配合使用。“newTheme”:通知应用改变新主题,如黑白切换,与command参数为"changeTheme"时配合使用。 |
返回值:
类型 | 说明 |
---|---|
Promise<[ResultData]> | Promise对象,返回发送指令的结果。 |
QueryType
查询导航信息枚举类型。
系统能力: SystemCapability.CarService.NavigationInfo
起始版本: 4.1.0(11)
名称 | 值 | 说明 |
---|---|---|
NAVIGATION_STATUS | navigationStatus | 查看导航状态,callback返回数据为[NavigationStatus]。 |
NAVIGATION_METADATA | navigationMetadata | 查看导航TBT信息,callback返回数据为[NavigationMetadata]。 |
CommandType
发送指令枚举类型。
系统能力: SystemCapability.CarService.NavigationInfo
起始版本: 4.1.0(11)
名称 | 值 | 说明 |
---|---|---|
START_NAVIGATION | startNavigation | 发起导航接口。 |
STOP_NAVIGATION | stopNavigation | 停止导航接口。 |
GO_HOME | goHome | 导航回家。 |
GO_TO_COMPANY | goToCompany | 导航去公司。 |
START_MAP_LAYER | startMapLayer | 启动地图图层到其他屏幕。 |
STOP_MAP_LAYER | stopMapLayer | 销毁其他屏幕上的地图图层。 |
ZOOM_IN_MAP | zoomInMap | 放大地图。 |
ZOOM_OUT_MAP | zoomOutMap | 缩小地图。 |
CHANGE_THEME | changeTheme | 更改主题。 |
START_UPDATE_NAVIGATION_STATUS | startUpdateNavigationStatus | 开始更新导航状态。起始版本: 5.0.0(12) |
STOP_UPDATE_NAVIGATION_STATUS | stopUpdateNavigationStatus | 停止更新导航状态。起始版本: 5.0.0(12) |
ResultData
查询导航信息或发送指令的结果。
系统能力: SystemCapability.CarService.NavigationInfo
起始版本: 4.1.0(11)
名称 | 类型 | 只读 | 可选 | 说明 |
---|---|---|---|---|
code | number | 否 | 否 | 错误码。 |
message | string | 否 | 否 | 错误信息。 |
data | { [key: string]: object } | 否 | 否 | 附加信息,应用可以根据实际需要以键值对的形式返回给系统。 |
getNavigationController
getNavigationController(): NavigationController
用于获取导航信息服务的控制器。
系统能力: SystemCapability.CarService.NavigationInfo
起始版本: 4.1.0(11)
返回值:
类型 | 说明 |
---|---|
[NavigationController] | 导航信息服务的控制器。 |
示例:
import { navigationInfoMgr } from '@kit.CarKit';
let naviInfoController: navigationInfoMgr.NavigationController = navigationInfoMgr.getNavigationController();
NavigationController
导航信息服务的控制器,用于获取导航信息服务。
系统能力: SystemCapability.CarService.NavigationInfo
起始版本: 4.1.0(11)
updateNavigationStatus
updateNavigationStatus(navigationStatus: NavigationStatus): void
设置导航状态,包含地图状态、导航类型、导航目的地、导航途径点、路线、地图和主题等。
系统能力: SystemCapability.CarService.NavigationInfo
起始版本: 4.1.0(11)
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
navigationStatus | [NavigationStatus] | 是 | 导航状态,包含地图状态、导航类型、导航目的地、导航途径点、路线、地图和主题等。 |
示例:
import { navigationInfoMgr } from '@kit.CarKit';
// 获取NavigationController
let naviInfoController: navigationInfoMgr.NavigationController = navigationInfoMgr.getNavigationController();
// 设置导航状态属性
let navigationStatus: navigationInfoMgr.NavigationStatus = {} as navigationInfoMgr.NavigationStatus;
navigationStatus.status = navigationInfoMgr.MapStatus.NAVIGATION;
navigationStatus.naviType = navigationInfoMgr.NaviType.DRIVING;
navigationStatus.customData = 'eb7666ff9b8d48beb28782cc0f7ba545';
naviInfoController.updateNavigationStatus(navigationStatus);
updateNavigationMetadata
updateNavigationMetadata(navigationMetadata: NavigationMetadata): void
设置导航数据,包含导航转向模式、引导距离、当前道路名、下一次进入道路名等。
系统能力: SystemCapability.CarService.NavigationInfo
起始版本: 4.1.0(11)
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
navigationMetadata | [NavigationMetadata] | 是 | 导航数据,包含导航转向模式、引导距离、当前道路名、下一次进入道路名等。 |
示例:
import { navigationInfoMgr } from '@kit.CarKit';
// 获取NavigationController
let navInfoController: navigationInfoMgr.NavigationController = navigationInfoMgr.getNavigationController();
// 设置数据属性
let data: navigationInfoMgr.NavigationMetadata = {
naviTurnMode: 0x0001,
segmentLeftDis: 100,
currentRoadName: 'currentRoad',
nextRoadName: 'nextRoad',
intersectionView: 'intersectionView',
viewWidth: 960,
viewHeight: 450,
trafficLane: '0001',
cameraSpeedLimitValid: false,
cameraSpeedLimit: 120,
naviSpeedLimitValid: true,
naviSpeedLimit: 80,
currentSpeed: 75,
naviBearing: 90.00000000000000,
totalLeftDis: 1546,
remainingTime: 5,
customData: { 'sample': 'sampleData' }
};
navInfoController.updateNavigationMetadata(data);
registerSystemNavigationListener
registerSystemNavigationListener(listener: SystemNavigationListener): void
注册监听系统导航信息和指令,应用启动时需要调用该方法。
系统能力: SystemCapability.CarService.NavigationInfo
起始版本: 4.1.0(11)
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
listener | [SystemNavigationListener] | 是 | 注册监听系统导航信息和指令。 |
示例:
import { navigationInfoMgr } from '@kit.CarKit';
// 实现SystemNavigationListener接口
class Listener implements navigationInfoMgr.SystemNavigationListener {
// 实现onQueryNavigationInfo方法
onQueryNavigationInfo(query: navigationInfoMgr.QueryType, args: Record<string, Object>): Promise<navigationInfoMgr.ResultData> {
return new Promise(resolve => {
let ret: navigationInfoMgr.ResultData = {
code: 1001,
message: 'message test1',
data: args
}
resolve(ret);
})
}
// 实现onReceiveNavigationCmd方法
onReceiveNavigationCmd(command: navigationInfoMgr.CommandType, args: Record<string, Object>): Promise<navigationInfoMgr.ResultData> {
return new Promise(resolve => {
let ret: navigationInfoMgr.ResultData = {
code: 1002,
message: 'message test2',
data: args
}
resolve(ret);
})
}
}
let navInfoController: navigationInfoMgr.NavigationController = navigationInfoMgr.getNavigationController();
navInfoController.registerSystemNavigationListener(new Listener());
unregisterSystemNavigationListener
unregisterSystemNavigationListener(): void
取消注册监听系统导航信息和指令。
系统能力: SystemCapability.CarService.NavigationInfo
起始版本: 4.1.0(11)
示例:
import { navigationInfoMgr } from '@kit.CarKit';
let navInfoController: navigationInfoMgr.NavigationController = navigationInfoMgr.getNavigationController();
navInfoController.unregisterSystemNavigationListener();