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

目录

第一章 效果图

第二章 源代码 

第一章 效果图

  • 小编该案例主要实现的两个点的思路: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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Attack】针对GNN-based假新闻检测器

Attacking Fake News Detectors via Manipulating News Social Engagement AbstractMotivationContributions FormulationMethodologyAttacker Capability&#xff08;针对挑战1&#xff09;Agent Configuration&#xff08;针对挑战3&#xff09; WWW’23, April 30-May 4, 20…

单点车流量与饱和度的计算思考

sat&#xff1a;饱和度 v&#xff1a;平均车速 d(v)&#xff1a;车速为v情况下的安全车距&#xff08;车距车身长&#xff0c;平均值&#xff09; l&#xff1a;车道数 f&#xff1a;单位时间监测流量&#xff08;车/min&#xff09; 饱和度计算公式&#xff1a; 推导过程…

【23真题】魔都高校真题!刷一刷!

今天分享的是23年上海海事大学806的信号与系统试题及解析。 本套试卷难度分析&#xff1a;22年上海海事大学806考研真题&#xff0c;我也发布过&#xff0c;若有需要&#xff0c;戳这里自取&#xff01;本套试题内容难度适中&#xff0c;题量适中&#xff0c;考察的知识点不难…

插件漏洞导致 60 万个 WordPress 网站遭受攻击

WordPress 插件 WP Fastest Cache 容易受到 SQL 注入漏洞的攻击&#xff0c;该漏洞可能允许未经身份验证的攻击者读取站点数据库的内容。 WP Fastest Cache 是一个缓存插件&#xff0c;用于加速页面加载、改善访问者体验并提高网站在 Google 搜索上的排名。 根据 WordPress.o…

网站高性能架构设计——高性能NOSQL与缓存

从公众号转载&#xff0c;关注微信公众号掌握更多技术动态 --------------------------------------------------------------- 一、NOSQL简介 1.关系数据库存在如下缺点 (1)关系数据库存储的是行记录&#xff0c;无法存储数据结构 以微博的关注关系为例&#xff0c;“我关注…

HT81696 立体声D类音频功率放大器应用领域

HT81696 立体声D类音频功率放大器应用领域于&#xff1a;・智N音响 ・无线音响 ・便携式音箱 ・2.1声道小音箱・拉杆音箱 ・便携式游戏机等等。 HT81696内部集成免滤波器调制技术&#xff0c;能够直接驱动扬声器&#xff0c;内置的关断功能使待机电流Z小化&#xff0c;还集成了…

「Python编程基础」第3章:控制流

文章目录 一、用“炒菜”简单介绍下“控制流”二、布尔值三、比较运算符四、 和 操作符的区别五、布尔操作符六、混合布尔和比较操作符七、代码块是什么&#xff1f;八、控制流语句1. if 语句2. else语句3. elif语句4. 总结 九、while循环语句十、break语句十一、continue语句…

[读论文]DiT Scalable Diffusion Models with Transformers

论文翻译Scalable Diffusion Models with Transformers-CSDN博客 论文地址&#xff1a;https://arxiv.org/pdf/2212.09748.pdf 项目地址&#xff1a;GitHub - facebookresearch/DiT: Official PyTorch Implementation of "Scalable Diffusion Models with Transformers&qu…

在哪里可以制作一本精美的翻页产品册呢?

你是否曾经为了一张可滑动的画册而翻看了整个产品册&#xff1f;翻页产品册是一种数字化的画册形式&#xff0c;它可以在电脑、手机、平板等设备上进行浏览和阅读。相比传统的纸质画册&#xff0c;翻页产品册有着更多的优势和用途。那么&#xff0c;在哪里可以制作一本这种精美…

分布式系统架构理论与组件

文章目录 1.分布式系统的发展2.分布式系统的挑战3.分布式系统基本理论3.1 CAP定理3.2 PACELC理论3.3 BASE模型3.4 一致性算法 4.分布式架构组件4.1 主要组件4.2 辅助工具4.3 常用架构 5.常用数据库5.1 数据库的发展5.2 OLTP和OLAP5.3 常用NoSQL数据库5.4 常用关系型数据库 1.分…

如何修改Hosts文件(Windows、Linux)本机配置域名解析

Hosts文件是一种在计算机网络中存储主机名与IP地址对应关系的文本文件。通过配置Hosts文件&#xff0c;可以避免在网络环境中DNS无法正常解析时&#xff0c;出现无法访问互联网的问题。 Windows修改hosts文件 1 以windows10系统为例&#xff0c;手指同时按住 windows 键和 X 键…

php-cli

//运行index.php ./php index.php//启动php内置服务器 ./php -S 0.0.0.0:8080//启动内置服务在后台运行&#xff0c;日志输出到本目录下的server.log nohup ./php -S 0.0.0.0:8080 -t . > server.log 2>&1 &# 查找 PHP 进程 ps aux | grep "php -S 0.0.0.0:…

【Python基础篇】运算符

博主&#xff1a;&#x1f44d;不许代码码上红 欢迎&#xff1a;&#x1f40b;点赞、收藏、关注、评论。 格言&#xff1a; 大鹏一日同风起&#xff0c;扶摇直上九万里。 文章目录 一 Python中的运算符二 算术运算符1 Python所有算术运算符的说明2 Python算术运算符的所有操作…

EDMA的组成及其作用简介

EDMA是什么&#xff1f; 答&#xff1a;EDMA&#xff08;Enhanced Direct Memory Access&#xff09;是一种增强型的直接内存访问技术&#xff0c;用于高效地实现数据传输和处理。它是在传统的DMA&#xff08;Direct Memory Access&#xff09;基础上进行改进和扩展的。DMA是一…

windows的远程桌面服务RDS存在弱加密证书的漏洞处理

背景 漏洞扫描检测windows服务器的远程桌面服务使用了弱加密的ssl证书 思路 按照报告描述&#xff0c;试图使用强加密的新证书更换默认证书 解决 生成证书 通过openssl1.1.1生成&#xff08;linux自带openssl&#xff0c;windows安装的是openssl1.1.1w&#xff09;&#x…

外贸开发信主题怎么写?营销邮件标题推荐?

外贸开发信主题编写方法&#xff1f;如何用QQ邮件群发外贸邮件&#xff1f; 在外贸领域&#xff0c;写一封引人注目的开发信至关重要。外贸开发信主题应当吸引受众&#xff0c;引起兴趣&#xff0c;激发他们与您进一步合作的愿望。为了达到这个目标&#xff0c;蜂邮将探讨一些…

基于STM32设计的酒驾监控系统_优化升级版

与之前的酒驾检测的项目,优化了onenet网络上传代码,保证网络差的环境下也可以正常上传数据。 一、设计需求 1.1 设计需求总结 酒后驾车已经成为威胁人类生命安全的严重问题。为了严格控制酒后驾车,本文设计了一款针对道路行驶的酒后驾车监测系统。该系统采用STM32作为主控…

拖拽式万能DIY小程序源码系统 5分钟创建一个小程序,操作简单 带完整的部署搭建教程

随着移动互联网的发展&#xff0c;越来越多的企业开始使用可视化拖拽式小程序系统来开发和管理自己的应用程序。可视化拖拽式小程序系统为企业提供了一种更快捷、更简便的方式来开发和管理应用程序&#xff0c;这种方式能够大大提高企业的工作效率&#xff0c;使企业更加高效地…

Everything——检索神兵

相信在日常生活工作中&#xff0c;大家肯定会有这样的困惑&#xff1a;由于一时疏忽&#xff0c;自己下载或编写的文件保存的路径丢失&#xff0c;想再次在茫茫内存中找到会很麻烦。今天学长将带来一款软件——Everything&#xff0c;其拥有强大的搜索功能&#xff0c;可以帮助…

AIGC|实践探索Langflow集成AzureOpenAI

目录 一、背景 二、AzureOpenAI介绍 三、langflow集成支持AzureOpenAI langflow集成AzureOpenAI联通改造流程&#xff1a; 四、效果演示 一、背景 langflow是一个LangChain UI&#xff0c;它提供了一种交互界面来使用LangChain&#xff0c;通过简单的拖拽即可搭建自己的实…