开发 HarmonyOS NEXT 导航SDK 开发指南 专业导航 实时导航与模拟导航

实时导航与模拟导航 最后更新时间: 2026年05月29日

实时导航会自动打开手机卫星定位功能,通过手机的定位信息来驱动的导航,应用于实际的导航过程。模拟导航则不需要使用定位功能,仅用于室内模拟使用,目的是让您对导航功能有一些更直观的了解,比如预先了解既定路线的一些情况,如路况信息、电子眼信息等。注意:不要将模拟导航作为实际导航展示。

实时导航的显示效果如下:

模拟导航的显示效果如下:

实现导航的步骤如下:

第一步:创建导航单例,并设置Key

获取Key

AMapNaviFactory.getAMapNaviInstance(getContext().getApplicationContext(), appkey)

第二步:创建导航组件

设置引擎类型、导航类型、起点、终点等信息。

build() {
    NavDestination() {
      AMapNaviComponent({
        appCustomerConfig: {
          mType: AmapNaviType.Driver, //引擎类型(驾车、骑行、步行)。当前支持驾车、货车、摩托车
          //默认模拟导航
          // mNaviType: NaviType.EMULATOR,
          //实时导航
          mNaviType: NaviType.GPS,
          start: {
            coordinate: this.startLatLng
          }, //起点
          end: {
            coordinate: this.endLatLng
          }, //终点
          // wayPoints: this.wayPoints, //途经点
          mRouteStrategy: 10, //设置默认规划路线策略
          serviceAreaDetailsEnable: true, //服务区信息
          goBack: () => {
            this.goback()
          },
        }
      })
    }.title('导航组件')
    .hideTitleBar(true)
    .onBackPressed(() => {
      this.goback()
      return true
    })
  }

第三步:规划路线

如选择驾车,会调用如下接口进行算路

  /**
   * 算路
   *
   * @param startPoiInfo 起点poi信息
   * @param endPoiInfo 终点poi信息
   * @param wayPoiInfos 途经点poi信息
   * @param drivingStrategy 导航策略
   * @return 发起算路是否成功
   */
  public calculateDriveRoute(startPoiInfo: CorePoiInfo| null, endPoiInfo: CorePoiInfo| null, wayPoiInfos: ArrayList<CorePoiInfo> | null, drivingStrategy: number):  boolean {}

第四步:接收算路回调

/**
 * 路线规划成功回调,包括算路、导航中偏航、用户改变算路策略、行程点等触发的重算,具体算路结果可以通过{@link com.amap.api.navi.model.AMapCalcRouteResult}获取
 * 可以通过CalcRouteResult获取算路错误码、算路类型以及路线id
 * @param routeResult {@link IAMapCalcRouteResult}
 * @since 1.0.0
 */
onCalculateRouteSuccess?:(routeResult: IAMapCalcRouteResult | null) => void

/**
 * 路线规划失败回调,包括算路、导航中偏航、用户改变算路策略、行程点等触发的重算,具体算路结果可以通过{@link com.amap.api.navi.model.AMapCalcRouteResult}获取
 * 可以通过CalcRouteResult获取算路错误码、算路类型以及路线id
 * @param routeResult {@link com.amap.api.navi.model.AMapCalcRouteResult}
 * @since 1.0.0
 */
onCalculateRouteFailureForResult?:(routeResult: IAMapCalcRouteResult| null) => void

在路线规划成功后,才可以开始导航。

第五步:算路成功后开始导航

/**
 * 开始导航。实时导航会自动打开手机卫星定位功能。模拟导航则不需要使用定位功能。
 *
 * @param naviType 导航类型,0:实时导航 1:模拟导航。
 * @return 启动成功或者失败。true是成功,false是失败。
 * @since 1.0.0
 */
startNavi(naviType: number): boolean;

设置参数0即实时导航,1即模拟导航。 

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