开发 HarmonyOS NEXT 导航SDK 开发指南 专业导航 智能巡航

智能巡航 最后更新时间: 2026年05月29日

功能简介

智能巡航模式 是一种无需设置起点与终点、无需路径规划的轻量级导航引导模式。在驾车过程中,系统会自动播报前方交通设施、电子眼、拥堵路段等实时信息,提升驾驶安全性与体验感。

  • 无需算路
  • 无需起终点
  • 支持语音/视觉提示
  • 实时获取交通事件信息
  • 巡航模式需联网使用。
  • 巡航效果建议在真实车辆行驶或模拟定位环境中体验。
  • 巡航模式与导航模式互斥,不可同时运行。

核心 API 使用说明

1. 获取导航实例

import { AMapNaviFactory } from "@amap/amap_lbs_navi";

const context = getContext().getApplicationContext();
this.mAMapNavi = AMapNaviFactory.getAMapNaviInstance(context, 'YOUR_API_KEY');

2. 设置巡航监听器(IAimlessModeListener)

实现 IAimlessModeListener 接口以接收各类巡航事件回调:

回调方法说明:

方法

触发时机

说明

onUpdateTrafficFacility(infos)

道路设施更新

如服务区、收费站、摄像头等

onUpdateAimlessModeElecCameraInfo(cameraInfo)

电子眼信息更新

包含距离、限速等

updateAimlessModeStatistics(stat)

统计信息更新

当前巡航里程、拥堵耗时等

updateAimlessModeCongestionInfo(info)

拥堵信息更新

当前道路拥堵状态及预计通过时间


3. 启动/停止智能巡航

启动巡航模式

this.mAMapNavi.startAimlessMode(mode: number);

mode 值

播报内容

1

仅播报电子眼

2

仅播报特殊路段(如隧道、桥梁)

3

播报电子眼 + 特殊路段(推荐)

tsthis.mAMapNavi.startAimlessMode(3); // 开启智能播报

停止巡航模式

tsthis.mAMapNavi.stopAimlessMode();

模式切换规则

由于 导航模式 与 巡航模式 互斥,请遵循以下流程进行切换:

当前状态

目标状态

操作步骤

正在导航

启动巡航

先调用 stopNavi() → 再调用 startAimlessMode()

正在巡航

启动导航

先调用 stopAimlessMode() → 再调用正常导航接口


支持模拟测试(可选)

可通过 MockLocationManager 模拟路径行驶,验证巡航逻辑是否正常。

启用模拟定位步骤:

  1. 设置模拟管理器:
this.mAMapNavi.setMockLocationManager(MockLocationManager.getInstance());
  1. 添加路径计算成功监听:
this.mAMapNavi.addAMapNaviListener({
  onCalculateRouteSuccess: () => {
    const path = this.mAMapNavi?.getNaviPath();
    if (path) {
      this.mAMapNavi?.setEmulatorNaviSpeed(10); // 设置模拟速度:10km/h
      this.mAMapNavi?.startAimlessMode(3);
      this.mAMapNavi?.startMockLocation(path);
    }
  },
  onCalculateRouteFailure: (errorCode) => {
    console.error('路径规划失败:', errorCode);
  }
});
  1. 发起路径规划请求:
const startList = new ArrayList<INaviLatLng>();
startList.add({ latitude: 40.037530, longitude: 116.417580 });

const endList = new ArrayList<INaviLatLng>();
endList.add({ latitude: 40.035570, longitude: 116.417020 });

const wayPoints = new ArrayList<INaviLatLng>();

this.mAMapNavi.calculateDriveRoute(startList, endList, wayPoints, 0);

返回顶部 示例中心 常见问题 智能客服 公众号
二维码