干货时间~关于使用高德地图实现路径规划的一些事情

需求分析

最近工作接到了与地图路径规划相关的需求:接口返回起始点位以及其中的途经点,前端展示对应驾车规划路径,路径规划分为最快捷模式与最短距离模式。

知识准备

高德地图是有向开发者提供路径规划api的,感兴趣的小伙伴可以先看下官方提供的api说明高德地图路径规划

案例展示

核心代码

js 复制代码
let driving
AMap.plugin('AMap.Driving', function () {
    //在回调函数中实例化插件,并使用插件功能
    driving = new AMap.Driving({
        policy: AMap.DrivingPolicy.LEAST_TIME, // 驾车路线规划策略
        map: 'map容器',
        panel: '',
     })
     driving.search(
         new AMap.LngLat('lng','lat'), // 起点
         new AMap.LngLat('lng','lat'), // 终点
         {
             waypoints:[new AMap.LngLat('lng','lat')] // 途经点
         },
         function (status, result) {
            if (status === 'complete') {
                console.log('绘制驾车路线完成')
            } else {
                console.error('获取驾车数据失败:' + result)
            }
        }
     )
})

这里我用到了最快捷模式与最短距离模式,对应设置 policy 属性的属性值即可,途经点通过数组的方式传递对应经纬度即可

功能优化

因为切换方式时路径是不会消失的,所以我们要根据 driving 是否存在来调用其 clear 方法清空上次保留的路径

js 复制代码
if(driving) {
    driving.clear()
}

补充

最后附上demo的源代码,有需要的小伙伴可以参考下,注意高德的key和安全密钥记得申请赋值一下哦~ 代码地址

相关推荐
愚者Pro3 小时前
Flutter Widget组件学习(专为 Uniapp 转 Flutter 定制)
vue.js·学习·flutter·uni-app
zithern_juejin6 小时前
new 运算符
javascript
前端毕业班6 小时前
uniapp web 灵活控制 style scoped
前端·javascript·vue.js
张元清7 小时前
在 React 里写动画又不跟渲染周期较劲:useRafFn、useRafState、useFps、useDevicePixelRatio、useUpdate
前端·javascript·面试
卤蛋fg67 小时前
vxe-table 数据分组 + 单元格图表:柱状图与饼图渲染实战
vue.js
用户841794814567 小时前
vxe-table 数据分组:三种展示方式详解
vue.js
甜味弥漫8 小时前
JavaScript 底层逻辑:从内存视角看原型与原型链
前端·javascript
咪饭只吃一小碗8 小时前
JS this 身世大揭秘:它到底该听谁的?
前端·javascript
周淳APP9 小时前
【前端八股第一弹】
开发语言·前端·javascript·react.js
SmartBoyW9 小时前
撕掉前端黑魔法外衣:用 C++/Java 指针思维硬核拆解 JS 原型链
前端·javascript