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

需求分析

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

知识准备

高德地图是有向开发者提供路径规划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和安全密钥记得申请赋值一下哦~ 代码地址

相关推荐
gis开发之家18 小时前
《Vue3 从入门到大神35篇》Vue3 源码详解(五):effect 依赖收集原理——track 与 trigger 是如何工作的?
javascript·typescript·前端框架·vue3·vue3源码
橘子星20 小时前
我一个前端切图仔,凭什么能在浏览器里跑大模型?
前端·javascript·前端框架
半个落月20 小时前
用 LangChain JS 做可控写作实验:理解温度参数、提示词与异步调用
javascript·人工智能·后端
观远数据20 小时前
Excel到数据资产池:文件数据入湖的治理规范怎么建
前端·javascript·excel
CoderWeen20 小时前
我写了个能一步步点着看的 Dijkstra 可视化项目(Vue3 + Leaflet + Generator)
前端·javascript·vue.js
无人生还20 小时前
第 1 篇:从 Vue3 到 React 的思维转变
前端·vue.js·react.js
就业发动机20 小时前
我用 Tauri 做了一个约 1.5 MB 的开源屏幕标注工具:MarkerOn
vue.js·rust
爱分享的程序猿-Clark21 小时前
【前端分享】vue开发项目,如何实现 从A页面跳转到B页面,并传值!
前端·javascript·vue.js
冰暮流星21 小时前
javascript之String方法介绍
开发语言·javascript·ecmascript
徐小夕21 小时前
花了3天,我写了一款开源AI公众号编辑器
前端·vue.js·github