ymx-amap-navi
    正在准备搜索索引...

    接口 YmxAmapNavi

    高德地图导航

    基于高德地图导航 SDK 封装,调用后拉起 SDK 内置导航组件页面, 支持驾车、骑行、步行、摩托车导航,支持起终点/途径点、车辆限行与货车信息、主题等配置。

    • 使用前需在应用打包配置中设置高德地图 Key(见 Config.apiKey
    • 调用 showRoute 前请先使用 setListener 设置监听器,导航事件通过监听器异步回传(见 NaviEvent
    • 插件会自动申请定位权限(ohos.permission.APPROXIMATELY_LOCATION / ohos.permission.LOCATION), 用户拒绝授权时返回错误码 PERMISSION_DENIED
    • 导航需要联网使用,应用需在 module.json5 中声明 ohos.permission.INTERNET
    • 相关文档:
    const navi = ymx.requirePlugin('ymx-amap-navi') as YmxAmapNavi;

    // 设置监听器(导航事件异步回传)
    navi.setListener((eventName, data) => {
    switch (data.action) {
    case 'onCalculateRouteSuccess':
    console.log('算路成功:', data.data);
    break;
    case 'onCalculateRouteFailure':
    console.log('算路失败:', data.data);
    break;
    case 'onReCalculateRoute':
    console.log('重新算路:', data.data);
    break;
    case 'onStartNavi':
    console.log('开始导航');
    break;
    case 'onGetNavigationText':
    console.log('播报语音:', data.data.text);
    break;
    case 'onLocationChange':
    console.log('位置更新:', data.data.longitude, data.data.latitude);
    break;
    case 'onArriveDestination':
    console.log('到达目的地');
    break;
    }
    });

    // 从我的位置驾车导航到天安门广场
    await navi.showRoute({
    end: {
    name: '天安门广场',
    lat: 39.903179,
    lng: 116.397755
    }
    });
    interface YmxAmapNavi {
        id: string;
        version: string;
        removeListener(): Promise<void>;
        setListener(
            listener: (eventName: string, data: any) => void,
        ): Promise<void>;
        showRoute(data?: ShowRouteData): Promise<void>;
    }

    层级

    • JsApiBase
      • YmxAmapNavi
    索引

    属性

    id: string

    获取插件 ID

    version: string

    获取插件版本,如 1.2.3

    方法

    • 移除监听器

      返回 Promise<void>

    • 设置监听器,接收 eventName 事件名称,data 事件数据

      注意: 此接口为覆盖操作,仅保留最后一个监听器,最后的 listener 才能收到事件通知。

      参数

      • listener: (eventName: string, data: any) => void

      返回 Promise<void>

    • 显示导航路线

      拉起高德导航组件页面,自动完成定位权限申请、隐私合规初始化与算路。 导航过程中的状态与事件通过 setListener 异步回传(事件列表见 NaviEvent)。

      参数

      • 可选data: ShowRouteData

        导航参数(可选,不传起终点时进入无起终点导航模式)

      返回 Promise<void>

      导航组件启动成功

      const navi = ymx.requirePlugin('ymx-amap-navi') as YmxAmapNavi;

      // 驾车导航(起点、终点、途径点、播报模式、路况、主题、车辆信息)
      await navi.showRoute({
      naviType: 'drive',
      start: { name: '北京站', lat: 39.904556, lng: 116.427231 },
      end: { name: '故宫博物院', lat: 39.917337, lng: 116.397056 },
      wayPoints: [
      { name: '首开广场', lat: 39.993266, lng: 116.473193 }
      ],
      broadcastMode: 2,
      trafficEnabled: true,
      theme: 'blue',
      carInfo: {
      restriction: true,
      carNumber: '京A123456'
      }
      });

      // 骑行导航
      await navi.showRoute({
      naviType: 'ride',
      end: { name: '成都天府广场', lat: 30.657401, lng: 104.065861 },
      theme: 'white'
      });

      // 步行导航
      await navi.showRoute({
      naviType: 'walk',
      end: { name: '成都东站', lat: 30.628931, lng: 104.141094 },
      theme: 'black'
      });