最近的一个项目中需要根据需求将地图上画出一条高速公路,然后将这条高速公路的行车轨迹绘制成一条带有颜色路线以便后续插入内容。
看遍了不少高德地图的api内容以及搜索了不少的网上资源,发现可以通过路径规划来记录车辆的行车点位集合,然后通过点位集合复原成一条自定义的路线。因此这里对该内容做下日常的整理记录。

绘制行车路线在高德地图中有不少的方式:
如:驾车路线规划、步行路线规划、骑行路线规划、公交路线规划
而我的目的就是为了能够获得路线的轨迹点位集合以便于后续画路线的时候能够通过点位集合渲染出来。因此这里我选择的是驾车路线。不同的路线规划也可以达到同样的效果,只是复杂程度不同而已,而我这里是 画高速公路 因此选择驾车路线规划最好。

vue组件代码示例:目的获取高速公路点位集合

步骤1:渲染地图,并且把点标记创建好以及地图点击事件标记上
步骤2:点击地图产生起点和终点并且生成路线(AMap.DragRoute)这个插件



代码:

<template><div class="index-map" id="index-map"></div>
</template>
<script>
export default {data() {return {map: {}, //保存地图对象leftStart: "",leftStartMark: {}, // 起点的点标记leftEnd: "",leftEndMark: {}, // 终点的点标记typeBtnLeft: false, // 起点终点的点击切换leftPath: [], // 路线绘制起点-终点集合leftResultPath: [] // 点位路径集合};},methods: {// 创建地图createMap() {let that = this;this.$nextTick(() => {//地图加载that.map = new AMap.Map("index-map", {zooms: [8, 20],zoom: 8,center: [118.764562, 32.061525]});// 创建点标记AMapUI.loadUI(["overlay/SimpleMarker"], function(SimpleMarker) {that.leftStartMark = new SimpleMarker({//设置节点属性iconLabel: {//普通文本innerHTML: "起",style: {color: "#fff",fontSize: "100%",marginTop: "1px"}},iconStyle: "red"});// 创建左边结束点that.leftEndMark = new SimpleMarker({//设置节点属性iconLabel: {//普通文本innerHTML: "终",style: {color: "#fff",fontSize: "100%",marginTop: "1px"}},iconStyle: "red"});});//获取鼠标点击的经纬度信息that.map.on("click", function(e) {// 线路点(起点-终点)if (that.typeBtnLeft == false) {// 先点击起点if (that.leftStartMark) {that.leftStart = e.lnglat.getLng() + "," + e.lnglat.getLat();that.leftStartMark.setMap(that.map);that.leftStartMark.setPosition([e.lnglat.getLng(),e.lnglat.getLat()]);}// 然后决定终点that.typeBtnLeft = true;} else if (that.typeBtnLeft == true) {// 设置好终点if (that.leftEndMark) {that.leftEnd = e.lnglat.getLng() + "," + e.lnglat.getLat();that.leftEndMark.setMap(that.map);that.leftEndMark.setPosition([e.lnglat.getLng(),e.lnglat.getLat()]);}// 终止点击that.typeBtnLeft = null;// 绘制路线that.createLeftLine();} else {console.log("点击完毕");}});});},// 绘制路径-左createLeftLine() {let that = this;if (that.leftStartMark && that.leftEndMark) {that.leftStartMark.setMap(null);that.leftEndMark.setMap(null);}//绘制左边初始路径,起点-终点that.leftPath = [];that.leftPath.push(that.leftStart.split(","));that.leftPath.push(that.leftEnd.split(","));// 使用DragRoute插件-构造拖拽导航类that.map.plugin("AMap.DragRoute", function() {that.leftRoute = new AMap.DragRoute(that.map,that.leftPath,AMap.DrivingPolicy.LEAST_TIME,{showTraffic: false,polyOptions: {strokeColor: "#409EFF"}});//查询导航路径并开启拖拽导航that.leftRoute.search();// 监听完成情况that.leftRoute.on("complete", function(result) {// 移动起始点后自动改变当前经纬度that.leftStart =result.data.start.location.lng +"," +result.data.start.location.lat;that.leftEnd =result.data.end.location.lng + "," + result.data.end.location.lat;// 保存点路径集合that.leftResultPath = that.leftRoute.getRoute();console.log('leftResultPath',that.leftResultPath);});});}},mounted() {this.createMap();}
};
</script>
<style lang="scss" scoped>
.index-map {height: 100vh;width: 100vw;
}
</style>

步骤三:将拿到的点位集合在地图上绘制出来(Loca.LineLayer可视化插件)

代码:

   // 根据点位集合绘制自定义路线createLine() {let that = this;// 构建可视化线图层that.layer = new Loca.LineLayer({map: that.map});// 转换格式:{direction:'',lnglat:[[xx][xx]]}let mLine = [];// 这里放置点位集合的内容赋值给mleftRoute即可let mleftRoute = JSON.parse(sessionStorage.getItem('xxxx'));let leftLine = { lnglat: mleftRoute };mLine.push(leftLine);// 生成线数据that.layer.setData(mLine, {lnglat: "lnglat"});// 设置线的颜色that.layer.setOptions({style: {color: function(v) {return "#40ef2a";},borderWidth: 8}});// 渲染that.layer.render();}

vue[高德地图行车路径规划以及路线记录绘制操作]相关推荐

  1. 高德地图驾车路径规划API,获取两地点之间的驾车里程和时间

    高德地图驾车路径规划API,获取两地点之间的驾车里程和时间 import pandas as pd import requests import jsondef get_dis_tm(origin, ...

  2. 高德地图货车路径规划JS API以及WEB API在VUE中使用方法

    做一个路径规划系统,使用到了高德地图的API以及VUE,而路径规划方面在高德地图中,货车的接口使用次数是极为有限的,研究了一段时间,所以使用的时候要谨慎一点次数. 本文记录一下高德地图的JS API和 ...

  3. 高德地图API路径规划结果清除

    关于高德地图API之路径规划结果的清除(js API) 偶然用到高德地图API做路径规划,在做的过程中发现连续进行不同的路径规划产生的结果是叠加的.如何清除上一次的路径规划呢?开发手册上有一个 cle ...

  4. 百度地图 行车路径规划自定义 起点 终点 路径

    已知N个坐标点,用这个点在百度地图上绘制一条行车路线 问题:百度地图为我们提供了 DrivingRoute API,但是提供的api中并没有提供更改路径.起点.终点.经点的样式,如果想让界面看起来舒服 ...

  5. 3、VBA网抓高德地图货车路径规划距离(借助刘永富老师插件解析JSON格式数据)

    Sub 高德货车()Dim x As MSXML2.XMLHTTP60Set x = New MSXML2.ServerXMLHTTP60With x.Open "GET", &q ...

  6. vue+高德地图绘制路径

    一.vue+高德地图开发 最近开发项目地图用的比较频繁,比如高德地图.百度地图或者echars地图,而且大都是用来做路径展示,所以今天说说高德地图的使用(非全面的高德地图使用) 使用的是vue cli ...

  7. 百度地图no result available_【整理之路二】百度地图的路径规划和调用本机地图导航...

    推荐看完之后注意一下最后的东西 一.细说百度地图的路径规划 路径规划主要有这么几种 1.公交路径规划 1.1 市内公交规划(暂时不在这里说) 1.2 跨市/省公交规划 // 导入头文件 #import ...

  8. 【整理之路二】百度地图的路径规划和调用本机地图导航

    一.细说百度地图的路径规划 路径规划主要有这么几种 1.公交路径规划 1.1 市内公交规划(暂时不在这里说) 1.2 跨市/省公交规划 // 导入头文件#import <BaiduMapAPI_ ...

  9. 利用vue+高德地图API 实现用户的运动轨迹

    利用vue+高德地图API 实现用户的运动轨迹 高德地图网址:https://lbs.amap.com/api/jsapi-v2/guide/abc/prepare 任务一:实现地图显示 先完成准备工 ...

最新文章

  1. 7.RabbitMQ RFC同步调用
  2. 在闲鱼传疯了,某大厂P8面试题库泄漏!
  3. 域名转发与域名解析有什么区别?
  4. 《研磨设计模式》chap23 职责链模式chainOfResponsibility(1)模式简介
  5. Python里面的多线程
  6. px、em、pt之间的区别与互相转换
  7. 拷贝构造函数 c语言中文网,C++对象的复制
  8. 静态、动态内存分配比较
  9. Android中插件开发篇总结和概述
  10. antd pro中如何使用mock数据以及调用接口
  11. 安装版mysql5.7_mysql5.7 安装版安装
  12. 探讨:ASP.NET技术的学习顺序问题
  13. WebLogic UniversalExtractor反序列化漏洞(CVE-2020-14645)的复现和分析
  14. 根据wsdl文件生成WebService客户端代码
  15. nginx 常见错误码_Nginx启动常见错误及解决方法
  16. 企业网站建设要注意的四大准则
  17. 高德GIS地图动态显示打点数据
  18. 零基础学习HTML(5)——link、base标签的使用
  19. haribote bootpack.c 主任务程序代码阅读注释
  20. The Lost House POJ - 2057(树形dp+贪心 (双线最优子结构问题))

热门文章

  1. 【译】Inside SafetyNet - part 3
  2. 芝诺数据高校产学研用成果展示|携程酒店(北京)数据分析报告
  3. 最小元素的min函数
  4. jsp 登陆成功后,显示登录的用户名
  5. c语言中怎么用scanf给二维数组赋值,关于VC++6.0无法用scanf()输入浮点值赋给二维数组的问题...
  6. Explain的解读
  7. Excel画的图复制到Word中变形的解决办法
  8. C# WebApi 获取今日头条新闻代码
  9. 《小狗钱钱》理财摘录
  10. 微软软件实现技术授课系列内容之五:软件测试基础