uni-app 高德地图实时导航SDK功能

发布于 1周前 作者 wuwangju 来自 Uni-App

uni-app 高德地图实时导航SDK功能

开发环境 版本号 项目创建方式
  1. 导航基础功能(无终点启动导航组件/传入起终点启动导航组件/退出(销毁)导航组件/导航组件回调)
  2. 导航高级功能
  3. 实时导航与模拟导航(初始化导航并且监听回调/规划路线/ 接收算路回调/ 算路成功后开始导航)
  4. 导航实时数据获取(注册一般导航事件与数据监听(驾车、骑行、步行通用)/ NaviInfo信息)
  5. UI界面定制(显示模式与视角/自定义标注(车标样式-设置自车的图片对象)/自定义交通路线-显示隐藏控制/自定义UI控件(AMapNaviViewOptions中如下接口进行单UI元素显示隐藏设置)/其他自定义能力(日夜模式,自动锁车)
  6. 定位相关设置与回调(当GPS位置有更新时的回调函数)
  7. 组件自定义宽高(amap_navi_view)

5 回复

原生封装,可以做,QQ 583069500


是有成品还是重新开发

Q 1196097915 专业插件开发

专业插件开发定制 zhimitec

在uni-app中实现高德地图实时导航功能,可以通过集成高德地图的JSSDK来完成。以下是一个基本的代码示例,展示了如何在uni-app中引入高德地图并启动实时导航。

首先,确保你已经在高德开放平台申请了开发者账号并获取了相应的API Key。

1. 安装高德地图JSSDK

在uni-app项目中,你需要在manifest.json中添加高德地图的SDK配置(如果高德地图提供了适用于uni-app的官方SDK,应参考其官方文档进行配置)。不过,通常我们可以通过web-view组件或者H5+ API来调用高德地图的JSSDK。

2. 在页面中引入高德地图JSSDK

在你的uni-app页面(如pages/index/index.vue)中,通过script标签引入高德地图的JSSDK:

<template>
  <view>
    <button @click="startNavigation">开始导航</button>
    <web-view :src="mapSrc" v-if="mapSrc"></web-view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      mapSrc: ''
    };
  },
  methods: {
    startNavigation() {
      // 引入高德地图JSSDK(确保替换为你的API Key)
      const script = document.createElement('script');
      script.type = 'text/javascript';
      script.src = `https://webapi.amap.com/maps?v=2.0&key=你的API_KEY`;
      document.head.appendChild(script);

      script.onload = () => {
        // 创建地图实例并启动导航
        const AMap = window.AMap;
        const map = new AMap.Map('container', {
          resizeEnable: true,
          zoom: 15,
        });

        // 假设起点和终点坐标
        const start = [116.481028, 39.989643];
        const end = [116.434424, 39.908821];

        // 使用AMap.DrivingRoute进行路径规划并启动导航
        const driving = new AMap.DrivingRoute({
          map: map,
          policy: AMap.DrivingPolicy.LEAST_TIME,
        });

        driving.search(start, end, (status, result) => {
          if (status === 'complete') {
            const navi = new AMap.Navi({
              map: map,
              showTraffic: true,
              policy: AMap.DrivingPolicy.LEAST_TIME,
            });
            navi.start([{ lng: start[0], lat: start[1] }], [{ lng: end[0], lat: end[1] }]);
          }
        });

        // 注意:这里的container是需要在页面上预留的div元素的id,但在uni-app中通常使用web-view
        // 因此,这里的代码主要是为了展示如何在JSSDK中使用导航功能
        // 实际在uni-app中,应直接通过web-view加载导航页面,并传递参数

        // 示例:通过web-view加载高德导航页面(需自行构建URL参数)
        this.mapSrc = `https://uri.amap.com/navi?src=webapi&address=${encodeURIComponent('终点地址')}&name=${encodeURIComponent('导航标题')}&policy=LEAST_TIME&key=你的API_KEY`;
      };
    },
  },
};
</script>

注意:由于uni-app的web-view组件不支持与页面直接交互,上述代码中的地图实例创建部分仅作为示例。在实际应用中,你应直接通过web-view加载高德地图提供的导航页面,并通过URL参数传递起点、终点等信息。高德地图提供了详细的导航页面URL构建规则,请参考其官方文档。

回到顶部