往期鸿蒙5.0全套实战文章必看:(文中附带鸿蒙5.0全栈学习资料)


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[]

途经点数组。

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<ResultData>

应用收到系统的查询请求,然后通过Promise回调给系统。

系统能力:SystemCapability.CarService.NavigationInfo

起始版本:4.1.0(11)

参数:

参数名

类型

必填

说明

query

QueryType

查询命令。

args

Record<string, Object>

query参数的附加参数。

返回值:

类型

说明

Promise<ResultData>

Promise对象,返回查询导航信息的结果。

示例:

回调方法,具体代码示例见registerSystemNavigationListener示例。

onReceiveNavigationCmd

onReceiveNavigationCmd(command: CommandType, args: Record<string, Object>): Promise<ResultData>

应用收到系统发送的指令,然后通过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对象,返回发送指令的结果。

示例:

回调方法,具体代码示例见registerSystemNavigationListener示例。

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();

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐