鸿蒙5.0&next开发【navigationInfoMgr(导航信息管理)】 硬件

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]途经点数组。
routeIndexnumber路线编号,大于等于0。
routePreference[RoutePreference]路线偏好。
theme[ThemeType]地图主题色。
customDataString自定义数据。

MapStatus

地图状态枚举值,列举出地图具体的状态。

系统能力: SystemCapability.CarService.NavigationInfo

起始版本: 4.1.0(11)

名称说明
IDLE0地图处于空闲态。说明:地图应用未启动时,默认为该值。
NAVIGATION1地图处于导航中。
CRUISE2地图处于巡航中。
POI3地图处于地图选点状态。
ROUTE4地图处于路线选择状态。
UNAVAILABLE5地图服务不可用。说明地图应用内部错误无法提供服务时,设置该值。

NaviType

导航类型枚举值。

系统能力: SystemCapability.CarService.NavigationInfo

起始版本: 4.1.0(11)

名称说明
DRIVING0驾车类型。
MOTORCYCLE1摩托车类型。
CYCLING2骑行类型。
WALKING3步行类型。

Location

地理位置坐标编码。

系统能力: SystemCapability.CarService.NavigationInfo

起始版本: 4.1.0(11)

名称类型只读可选说明
namestring地址名称。
coordType[LocationCoordType]地理位置坐标系编码。
longitudenumber目的地经度,结合coordType使用。
latitudenumber目的地纬度,结合coordType使用。
altitudenumber目的地海拔高度,单位:m,默认值:0。

LocationCoordType

地理位置坐标系编码枚举值。

系统能力: SystemCapability.CarService.NavigationInfo

起始版本: 4.1.0(11)

名称说明
GCJ020国内坐标编码。
WGS841国际坐标编码。

RoutePreference

路线偏好枚举值。

系统能力: SystemCapability.CarService.NavigationInfo

起始版本: 4.1.0(11)

名称说明
INTELLIGENT_RECOMMENDATION0智能推荐。
HIGHWAY_FIRST1高速优先。
AVOID_HIGHWAY2不走高速。
AVOID_CONGESTION3躲避拥堵。
LESS_CHARGE4少收费。
MAIN_ROAD_FIRST5大路优先。
TIME_FIRST6时间优先。

ThemeType

地图主题颜色枚举值。

系统能力: SystemCapability.CarService.NavigationInfo

起始版本: 4.1.0(11)

名称说明
LIGHT0地图是浅色主题。
DARK1地图是深色主题。

NavigationMetadata

该类为导航信息数据对象,定义了导航的数据信息,包括导航转向模式、引导距离、当前道路名、下一次进入道路名等。

系统能力: SystemCapability.CarService.NavigationInfo

起始版本: 4.1.0(11)

名称类型只读可选说明
naviTurnModenumber导航转向模式,十六进制,取值范围0~3E7,按照16进制的格式传递。
segmentLeftDisnumber下一次动作剩余距离,即引导距离,单位:m。
currentRoadNamestring当前道路名。
nextRoadNamestring下一次进入的道路名。
intersectionViewstring路口放大图。图片的Base64字节编码值 。
viewWidthnumber路口放大图片宽度,单位:像素。
viewHeightnumber路口放大图片高度,单位:像素。
trafficLanestring车道线,从最左边到最右边按序排列。通讯以四位为一个单元进行解析,每个单元对应一个车道线,根据需求可以传多个车道线,图标编码为枚举值。
cameraSpeedLimitValidboolean电子眼限速有效位。true表示有效,false表示无效。
cameraSpeedLimitnumber电子眼限速值,单位:m/s。
naviSpeedLimitValidboolean导航限速有效位。true表示有效,false表示无效。
naviSpeedLimitnumber导航限速值,单位:m/s。
currentSpeednumber当前车速,单位:m/s。
naviBearingnumber导航方向角度,即相对正北方的角度。
totalLeftDisnumber全程剩余距离,单位:m。
remainingTimenumber剩余时间,单位:min。
customDataRecord<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]查询命令。
argsRecord<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]系统服务需要应用执行的命令。
argsRecord<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_STATUSnavigationStatus查看导航状态,callback返回数据为[NavigationStatus]。
NAVIGATION_METADATAnavigationMetadata查看导航TBT信息,callback返回数据为[NavigationMetadata]。

CommandType

发送指令枚举类型。

系统能力: SystemCapability.CarService.NavigationInfo

起始版本: 4.1.0(11)

名称说明
START_NAVIGATIONstartNavigation发起导航接口。
STOP_NAVIGATIONstopNavigation停止导航接口。
GO_HOMEgoHome导航回家。
GO_TO_COMPANYgoToCompany导航去公司。
START_MAP_LAYERstartMapLayer启动地图图层到其他屏幕。
STOP_MAP_LAYERstopMapLayer销毁其他屏幕上的地图图层。
ZOOM_IN_MAPzoomInMap放大地图。
ZOOM_OUT_MAPzoomOutMap缩小地图。
CHANGE_THEMEchangeTheme更改主题。
START_UPDATE_NAVIGATION_STATUSstartUpdateNavigationStatus开始更新导航状态。起始版本: 5.0.0(12)
STOP_UPDATE_NAVIGATION_STATUSstopUpdateNavigationStatus停止更新导航状态。起始版本: 5.0.0(12)

ResultData

查询导航信息或发送指令的结果。

系统能力: SystemCapability.CarService.NavigationInfo

起始版本: 4.1.0(11)

名称类型只读可选说明
codenumber错误码。
messagestring错误信息。
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();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值