高德地图系列(四):vue项目利用高德地图实现车辆的路线规划

news2024/11/18 9:39:07

目录

第一章 效果图

第二章 源代码 

第一章 效果图

  • 小编该案例主要实现的两个点的思路:1、有两个正常的经纬度就可以在地图中绘制出汽车从起点到终点的路线规划;2、当用户经纬度发生变化时,用户可以通过某个操作,或者程序员通过某种方式,再次调用接口,从而实现线路的变化
  •  小编转换成两个情景:1、首次进入地图渲染汽车的规划路径;2、通过点击事件表示经纬度发生变化,需要重新规划路线

第二章 源代码 

  •  代码描述如下:(注意,以下代码只是小编的基本代码,细节优化暂时需要大家自己思考,并且小编在之后的文章中也会反应出来!!)
<template>
  <div>
    <a-button @click="refreshDriving">刷新路径</a-button><br>
    <div>
      <div id="container" ref="amap"></div>
      <div id="panel"></div>
    </div>
  </div>
</template>

<script>
import AMapLoader from '@amap/amap-jsapi-loader'
export default {
  data () {
    return {
      map: null,
      lnglat: [], // [long,lat]
      driving: null,
      mapModule: null // AMap
    }
  },
  mounted () {
    window._AMapSecurityConfig = {
      securityJsCode: '申请key对应的秘钥' // 申请key对应的秘钥
    }
    this.initAMap()
  },
  destroyed () {
    this.map.destroy()
  },
  methods: {
    initAMap () {
      const _this = this
      AMapLoader.load({
        key: '申请的key', // 申请好的Web端开发者Key,首次调用 load 时必填
        version: '2.0', // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
        plugins: []
      })
        .then((AMap) => {
          _this.mapModule = AMap
          const map = new AMap.Map('container', {
            // 设置地图容器id
            viewMode: '3D', // 默认2d地图模式
            zoom: 12, // 初始化地图级别
            zooms: [5, 30],
            // 可以设置初始化当前位置
            // center: new AMap.LngLat(121.378945, 31.264033), // 上海
            // center: [118.118547, 24.475637], // 厦门
            center: [116.397428, 39.90923], // 北京
            resizeEnable: true
          })
          // 添加控件
          AMap.plugin(
            [
              'AMap.ElasticMarker',
              'AMap.Scale',
              'AMap.ToolBar',
              'AMap.HawkEye',
              'AMap.MapType',
              'AMap.Geolocation',
              'AMap.Driving',
              'AMap.AutoComplete',
              'AMap.PlaceSearch',
              'AMap.MarkerClusterer'
            ],
            () => {
              map.addControl(new AMap.ElasticMarker())
              map.addControl(new AMap.Scale())
              map.addControl(new AMap.ToolBar())
              map.addControl(new AMap.HawkEye())
              map.addControl(new AMap.MapType())
              map.addControl(new AMap.Geolocation())
            }
          )
          _this.map = map
          // 驾驶路线
          _this.toDriving()
        })
        .catch((e) => {
          console.log(e)
        })
    },
    toDriving () {
      const _this = this
      const driving = new _this.mapModule.Driving({
        map: this.map,
        panel: 'panel'
      })
      this.driving = driving
      this.driving.search(
        new _this.mapModule.LngLat(121.378945, 31.264033),
        new _this.mapModule.LngLat(121.504128, 31.318716),
        // [121.378945, 31.264033],
        // [121.504128, 31.318716],
        function (status, result) {
          // result 即是对应的驾车导航信息,相关数据结构文档请参考  https://lbs.amap.com/api/javascript-api/reference/route-search#m_DrivingResult
          if (status === 'complete') {
            console.log('绘制驾车路线完成', result)
          } else {
            console.log('获取驾车数据失败:' + result)
          }
        }
      )
    },
    refreshDriving () {
      const _this = this
      _this.driving.search(
        new _this.mapModule.LngLat(121.378945, 32.265033),
        new _this.mapModule.LngLat(121.504128, 31.319716),
        function (status, result) {
          if (status === 'complete') {
            console.log('绘制驾车路线完成', result)
          } else {
            console.log('获取驾车数据失败:' + result)
          }
        }
      )
    },
  }
}
</script>
<style lang='less' scoped>
#container {
  padding: 0px;
  margin: 0px;
  width: 100%;
  height: 900px;
}
</style>
  • 配置panel后会展示每个路段的信息,这里我们也可以根据它自定义样式。

  • 这是我们绘制完成的路线信息,相当于后端传给前端的数据,当我们前端有了这些数据之后就能想怎么做怎么做了!!

  • 待扩展:
  1. 该案例还有许多不能的功能活用,暂时需要大家自行看官方文档了解每一个字段
  2. 知识延伸:使用时需要考虑经纬度没有值时怎么处理
  3. 知识延伸:实时获取用户经纬度,实时绘制路线
  • 实例文档:

示例文档:位置经纬度 + 驾车规划路线-驾车路线规划-示例中心-JS API 2.0 示例 | 高德地图API

  • 接口文档如下:

接口文档:参考手册-地图 JS API 2.0 | 高德地图API

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1211013.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VS2017新建.hpp文件

目录 1、新建h文件的方法&#xff1a;2、新建对用的cpp文件&#xff1a;3、在main.cpp中调用 1、新建h文件的方法&#xff1a; 2、新建对用的cpp文件&#xff1a; 3、在main.cpp中调用 参见大佬博客

PHP 论文发表管理系统mysql数据库web结构layUI布局apache计算机软件工程网页wamp

一、源码特点 PHP 论文发表管理系统是一套完善的web设计系统mysql数据库 &#xff0c;对理解php编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 php 论文发表系统1 代码 https://download.csdn.net/download/qq_412213…

pyCharm新建项目

1.新建界面点击Create New Project。 或点击File->New Project... 2.选择Pure Python后&#xff0c;如图选择路径。 Location的地址一致&#xff0c;点击Create。 3.等待新建成功后&#xff0c;在新建的项目名字右击&#xff0c;如下图可以选择新建文件夹、python包和python…

WPF下实现拖动任意地方都可以拖动窗口

首先在xaml中添加事件 <Window PreviewMouseLeftButtonDown"Window_PreviewMouseLeftButtonDown"PreviewMouseMove"Window_PreviewMouseMove"PreviewMouseLeftButtonUp"Window_PreviewMouseLeftButtonUp"/>然后脚本输入 Point _pressedP…

VS Code打造Rust的开发环境

文章目录 rust-analyzerCodeLLDB Rust据说是一门永远也不会发生内存错误的语言&#xff0c;并且因其反人类的学习曲线&#xff0c;而长期占据编程鄙视链的最顶端。而且就连微软都准备把Windows挪到Rust上面&#xff0c;可见其受欢迎程度。 rust-analyzer 在插件栏中直接搜索r…

科特迪瓦市场开发攻略,收藏一篇就够了

科特迪瓦是非洲西部的一个国家&#xff0c;被誉为西非明珠&#xff0c;跟中国经济联系紧密&#xff0c;很多产品依赖进口&#xff0c;市场潜力比较大。今天就来给大家介绍一下科特迪瓦的市场开发攻略&#xff0c;文章略长&#xff0c;大家点赞收藏关注慢慢看。 文章目录&#…

ssm+vue的物流配送管理系统(有报告)。Javaee项目,ssm vue前后端分离项目

演示视频&#xff1a; ssmvue的物流配送管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;ssm vue前后端分离项目 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 项目介…

文心生物计算大模型重磅升级,构象预测准确度全面提升!

文心生物计算大模型家族又迎来了重磅的升级&#xff1a;蛋白质-小分子对接构象预测模型HelixDock&#xff0c;以及蛋白-蛋白复合物结构预测模型HelixFold-Multimer准确度全面提升。这两项新技术可以大幅提升蛋白质-小分子的对接构象及蛋白-蛋白复合物结构预测的精度&#xff0c…

arcgis--创建多分辨率DEM

方法一&#xff1a;技术链为【栅格转点】-【创建TIN】-【TIN转栅格】。首先需要将栅格转成点数据&#xff0c;再根据点数据创建TIN&#xff0c;再将TIN转栅格。 1、打开一幅DEM影像图&#xff0c;如下&#xff1a; 在【转换工具】-【由栅格转出】 -【栅格转点】工具中&#xf…

VMware 安装CentOS7

一、软件准备 VMware 虚拟机安装 官网下载链接&#xff1a;VMware pro 17 下载链接 下载 VMware Workstation Pro | CN vm安装教学就不在细说&#xff0c;纯傻瓜式安装 Centos 7镜像文件下载 下载地址&#xff1a; Index of /centos/ | 清华大学开源软件镜像站 | Tsinghua O…

mq具体使用方式

代码方式 第一步方式导入依赖的方式 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--AMQP依赖&#xff0c;包含RabbitMQ--><…

2023年10月国产数据库大事记-墨天轮

本文为墨天轮社区整理的2023年10月国产数据库大事件和重要产品发布消息。 目录 10月国产数据库大事记 TOP1010月国产数据库大事记&#xff08;时间线&#xff09;产品/版本发布兼容认证代表厂商大事记厂商活动排行榜新增数据库相关资料 10月国产数据库大事记 TOP10 10月国产…

数据结构-时间复杂度与空间复杂度详解

文章目录 算法效率时间复杂度概念计算例1例2例3补充例4 空间复杂度例1例2 算法效率 算法效率分析分为两种:第一种是时间效率&#xff0c;第二种是空间效率。时间效率被称为时间复杂度&#xff0c;而空间效率被称作空间复杂度。时间复杂度主要衡量的是一个算法的运行速度&#…

卡尔曼滤波器第 2 部分 - 贝叶斯滤波器

一、说明 这是卡尔曼滤波器系列的第二部分&#xff0c;我们在概念和代码方面对卡尔曼滤波器进行了基于示例的理解。在第一部分中&#xff0c;我们对卡尔曼滤波器有了直观的理解&#xff0c;然后是基于数值的 Alpha-Beta 滤波器&#xff08;构成卡尔曼滤波器的基础&#xff09;的…

云服务器如何选?腾讯云2核2G3M云服务器88元一年!

作为一名程序员&#xff0c;在选择云服务器时&#xff0c;我们需要关注几个要点&#xff1a;网络稳定性、价格以及云服务商的规模。这些要素将直接影响到我们的使用体验和成本效益。接下来&#xff0c;我将为大家推荐一款性价比较高的轻应用云服务器。 腾讯云双11活动 腾讯云…

PC6410 DC-DC降压调整器低纹波高效率低功耗

PC6410是一款由基准电压源、振荡电路、比较器、PWM/PFM 控制电路等构成的CMOS降压DC/DC调整器。利用PWM/PFM自动切换控制电路达到可调占空比&#xff0c;具有全输入电压范围内的低纹波、高效率和大输出电流等特点。PC6410内置功率MOSFET&#xff0c;使用过压、过流、过热、短路…

AM335x USB Boot详细说明

首先&#xff0c;要rev2.1的芯片才支持&#xff0c;以前的cpu有bug&#xff0c;无法使用usb boot 上位机需要uniflash&#xff0c; 以太网上截取的报文&#xff0c;可以进入第一阶段 AM335x自动从c:\am335x_flashtool\images目录下下载u-boot-spl-restore.bin http://process…

3ds Max渲染用专业显卡还是游戏显卡?

使用3dsmax建模时&#xff0c;会面临诸多选择&#xff0c;除了用vr还是cr的决策&#xff0c;硬件选择上也存在着疑问&#xff0c;比如用专业显卡还是消费级游戏显卡&#xff1f;一般来说&#xff0c;除非是特别专业的大型项目和软件&#xff0c;且预算在5位数以上&#xff0c;常…

ssm047网上服装销售系统+jsp

ssm047网上服装销售系统jsp 交流学习&#xff1a; 更多项目&#xff1a; 全网最全的Java成品项目列表 https://docs.qq.com/doc/DUXdsVlhIdVlsemdX 演示 项目功能演示&#xff1a; ————————————————

spring cloud之服务熔断

四、Hystrix组件(*) - 官网&#xff1a;https://github.com/Netflix/Hystrix - 在分布式环境中&#xff0c;许多服务依赖项不可避免的会失败。Hystrix是一个库&#xff0c;它通过添加延迟容忍和容错逻辑来帮助您控制这些分布式服务之间的交互。Hystrix通过隔离服务之间的访问点…