调用高德地图展示车辆行驶轨迹

2023-11-12

如何在页面中使用高德地图并分页展示多段历史轨迹

  1. 引入高德地图的JavaScript API
    打开index.html(key-后面的内容是你自己在高德上申请 的key) key-后面的内容是你自己在高德上申请 的key
  2. 引入高德组件
    在这里插入图片描述
  3. 配置webpack
    找到webpack.base.conf.js文件,找到module.exports,在externals中加上一行’AMap’: ‘AMap’
externals{
'AMap': 'AMap'
},
  1. 在页面中引入高德地图
import AMap from 'AMap'
  1. 页面挂载时加载地图(调用自定义方法)
mounted(){
 this.getHisGpsInfo(this.bizDate)
},
  1. 定义的加载地图轨迹的方法
      // 这个方法主要是调用自己的接口获取数据以及定义参数 bizDate是查询日期
      getHisGpsInfo(bizDate){
        let params={
          sDate:bizDate,//日期
          devNum:this.$route.query.devNum//前一个页面传来的参数设备名称
        }
        // 调用接口 获取数据
        NetUtil.doGetOpera('/fhGps/getHisFhGpsInfo02',{params},json=>{
          let data=json.data;// data是数组类型 let的数据data仅在当前方法体中有效 主要用于判断是否有数据
          if (data==undefined||data==null||data.length==0){
            return;
          }
          //有数据的情况下
          this.list=json.data;
          this.currentPage=1;// 由于每辆车当天有不同时间段的车程 所以有几段历史轨迹会在不用页面上展示
          this.totalPage=json.data.length;//数组的长度即有几个历史轨迹
          this.drawMap() // 调用绘制轨迹的方法
        },error=>{
          Toast(error)
        })
      },

      //绘制地图轨迹
      drawMap(){
        let pathData=this.list[this.currentPage-1] // 当前页的data数据即当天的第(this.currentPage-1)个轨迹数据
        let colorIndex=this.currentPage%5; // 当前页取余5 如果是第一页的话 结果为1 [0,4] 因为一个页面就能看5个页面之后就翻面了(分页自定义 看你一个页面想显示几段轨迹了,注意这里不是地图上显示几段轨迹)
        let color=this.colors[colorIndex];
        this.item=pathData
        let name=pathData.name;// 0-21-02-26路线 类似于这种
        this.distance=pathData.distance;// 行驶里程? 都是0
        this.startTime=pathData.beginTime;// 开始时间
        this.endTime=pathData.endTime;// 结束时间
        console.log(JSON.stringify(pathData))
        let map = new AMap.Map('container', {
          zoom: 13,
           center: pathData.paths[0]
        });
        function onerror(e) {
          //alert('图片加载失败!');
        }

        AMapUI.load(['ui/misc/PathSimplifier', 'lib/$'], function(PathSimplifier, $) {
          if (!PathSimplifier.supportCanvas) {
            alert('当前环境不支持 Canvas!');
            return;
          }
          var pathSimplifierIns = new PathSimplifier({
            zIndex: 100,// 绘制用图层的叠加顺序值
            //autoSetFitView:false,
            map: map, //所属的地图实例
            //pathData轨迹数据项 pathIndex轨迹索引
            getPath: function(pathData, pathIndex) {
              // 返回的是轨迹的节点坐标数组
              return pathData.path;
            },
            // 鼠标在轨迹上显示的内容 pointIndex 是轨迹节点索引
            getHoverTitle: function(pathData, pathIndex, pointIndex) {
              // 表明鼠标悬停在某个节点上
              if (pointIndex >= 0) {
                //point
                return pathData.name + ',点:' + pointIndex + '/' + pathData.path.length;
              }
              // 鼠标悬停在节点之间的连线上
              return pathData.name + ',点数量' + pathData.path.length;
            },
            renderOptions: {
              renderAllPointsIfNumberBelow: 100 //绘制路线节点,如不需要可设置为-1
            }
          });

          function onload() {
            //alert('图片显示')
            pathSimplifierIns.renderLater();
          }
          window.pathSimplifierIns = pathSimplifierIns;
          // setData设定数据源数组 并触发重新绘制
          pathSimplifierIns.setData([{
            name: name,
            path: pathData.paths
          }]);
          // 创建巡航器
          let nav = pathSimplifierIns.createPathNavigator(0, {
            loop: false,// 巡航器是否一直循环 false就是只放一遍
            speed: 50000,// 巡航器速度 千米/小时
            // 自定义巡航器样式
            pathNavigatorStyle: {
              initRotateDegree: 0,
              width: 16,// 这里是巡航器箭头的宽高
              height: 16,
              autoRotate: true,// 是否根据路径方向进行角度旋转
              lineJoin: 'round',
              content: 'defaultPathNavigator',//巡航器的内容 defaultPathNavigator(默认), circle(圆形),none(空)
              //content: PathSimplifier.Render.Canvas.getImageContent('../../assets/image/gps_track.png', onload, onerror),
              fillStyle: color,// 填充色
              strokeStyle: color,// 描边色
              lineWidth: 6,// 箭头处线宽? 描边宽度
              // 巡航器经过的路径的样式
              pathLinePassedStyle: {
                lineWidth: 2,// 线宽
                strokeStyle: color,// 线颜色
                borderWidth: 1,// 描边宽度
                borderStyle: color,//描边颜色
                dirArrowStyle: false// 方向箭头样式 lineWidth>=4时有效属性继承pathlineStyle 为true时使用默认配置
              }
            }
          });
          // 开启路径巡航
          nav.start();
        });

      },

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

调用高德地图展示车辆行驶轨迹 的相关文章

  • 使用组合 API 和 TypeScript 类型系统强类型化 vue 组件的 props

    我正在使用 vue 组合 api 和 typescript 如何使用打字稿输入系统强类型化组件属性 特洛伊 凯西尔的回答并不完全准确 我引用的文档definecomponent https vue composition api rfc n
  • 使用带有少量项目的 v-slide-group 时出现问题

    我在使用 v slide group 时遇到问题 有时我有 2 3 个项目 有时我有 10 个或更多项目 但项目较少时 它不会显示箭头 幻灯片项目也不居中 这是我的 HTML div div
  • 如何在 webpack 中渲染嵌套的 SASS?

    采取以下CSS MyComponent color blue Button color red 以及以下 React 组件 import React from react import classes from MyComponent sc
  • 如果用户在 Laravel 中经过身份验证,如何检查 Vue 组件?

    正如标题所述 我有点困惑如何根据用户是否登录并使用 Laravel 的 Auth 外观进行身份验证 使用 if else 语句处理 Vue 组件中的方法 我正在发出各种 Axios 请求 我需要根据用户是否登录来允许 禁止这些请求 我有 V
  • 如何在 Vue.js 中将 InnerHtml 复制到剪贴板?

    我想将此 for 循环的内容复制到剪贴板中 div class links div class row p makeUrl name p div div
  • 在 Angular 中使用 Vue 组件

    我有一个用 Vue 构建的项目 我想在 Angular 应用程序中重用 Vue 应用程序中的组件 这样我就不必从头开始重建每个组件 我在medium上看到了这个教程 如何在 Angular 应用程序中使用 Vue 2 0 组件 https
  • 防止文本区域出现新行

    我正在开发聊天功能 使用 Vue 并使用文本区域作为输入 以便溢出换行 并且对于编写较长消息的用户来说更具可读性 不幸的是 当用户按下 Enter 键并提交时 光标会在提交之前移动到新行 从而使用户体验感觉不佳 关于如何使用普通 Javas
  • 如何切换各个
  • 元素的类?
  • 当我切换变量时active在下面的代码中 activeCSS 类应用于列表中的所有元素 从列表中的所有元素中删除 如何单独定位列表元素 Todo List 示例具有类似的功能 待办事项 待办事项已完成 但它有点超出了我的技能范围 ul li
  • v-file-input .click() 不是函数

    我试图以编程方式触发 v file input 的 click 事件 因为它在 Vuetify 的文档中 但它显示一个错误this refs imagePicker click is not a function我在这里错过了什么吗 代码重
  • 如何将Vue包装的对象转换为普通对象

    我需要将对象类型的数据变量分配给普通变量 const myVue new Vue el myVue data vars show Form methods assign vars const new vars this vars html
  • vue-chartjs 反应数据错误

    我正在尝试使用反应式数据混合vue chartjs http vue chartjs org home id reactive data 用于设置初始数据的已安装函数正在运行 我可以使用 API 响应正确查看图表 fetchSessionT
  • vuejs 模板和 asp.net 部分视图,好的做法吗?

    我在网站中使用 Vue js 并将模板添加到 html 代码中 并将 js 代码添加到单个 js 文件中 所以我不想使用 vue Vuefy Browserfy 方法 而是稍后捆绑并缩小我的 js 文件 由于我必须使用 Asp Net MV
  • Vuetify 组件 v-form 对声明的 @submit 事件处理程序没有响应

    我正在使用 Vuetify 和 VueJS 最新版本 这是一个小模板登录 vue
  • 使用 webpack 导入目录中的所有 sass 文件

    我目前正在尝试使用 Webpack 捆绑我的所有文件 但我不知道在处理多个文件夹和 scss files 我曾经使用 grunt 来完成这些任务 这是我的文件夹结构的示例 functions mixin scss function scss
  • 使用 Nuxt 动态获取并编译模板

    我想从远程获取 svg 并通过编译使其栩栩如生 对于 赋予生命 我的意思是按类选择其中一些元素 并动态地将组件列表附加到其中 现在我只是使用 div div 我的组件如下所示 data return svg async created le
  • 在可组合项 vue3 中使用 props

    我正在将应用程序从 vue 2 升级到 vue 3 但在可组合项方面遇到了一些问题 我想在可组合项中使用道具 但它似乎不起作用 代码示例是从工作组件中提取的 当我将其留在组件中时 它可以正常工作 我假设defineProps不受可组合项支持
  • 使用 vue-cli 服务时如何禁用 linting?

    我正在使用以下命令使用 vue cli 运行我的项目 vue cli service 服务 open 如何禁用所有 linting 目前每次保存时都会重新进行 linting 并且更改代码需要很长时间 我已经把 lintOnSave fal
  • 创建由线连接的 CSS3 圆圈

    我必须在 CSS 中实现以下圆形和线条组合 并且我正在寻找有关如何有效实现此功能的指示 圆圈和线条应如下所示 我能够这样实现圆圈 span step background ccc border radius 0 8em moz border
  • 如何封装Vuejs项目中的常用功能?最佳实践

    我正在开发一个使用 Vuejs 作为前端的中型项目 我正在探索的封装 分离可能在许多组件中使用的常用方法的选项包括 mixins 方法和插件方法 混合方法我必须在每个要使用 mixin 方法的组件 文件 中编写一条 import 语句 由于
  • nuxt.js - 如何在服务器端为所有客户端缓存 axios 调用

    我正在使用 vue nuxt js 应用程序 我想知道是否可以为所有客户端缓存 axios webservice 调用 我必须获取一些货币参考数据 而每个客户都必须调用这些数据并没有多大意义 有人可以给我一些提示 甚至是一个例子吗 谢谢 这

随机推荐

  • 用户和用户组管理

    一 用户账号添加命令 useradd或adduser 介绍 useradd和adduser是完全等价的两条命令 都是用于创建新的用户账号 以useradd为例介绍 格式 useradd op username 选项 举例 useradd c
  • 谈冒烟测试与随机测试

    谈冒烟测试与随机测试来自51testing网 软件测试的种类何其多也 每种测试都有其要达到的目的和实现手段 本文将介绍两种不太普遍的测试类型 冒烟测试与随机测试 冒烟测试 冒烟测试 smoke testing 据说是微软起的名字 在 微软项
  • Ubuntu16.04 完全卸载cuda

    sudo apt get purge remove cuda
  • 解决GO语言编译程序在openwrt(mipsle架构)上运行提示Illegal instruction问题

    RT 最近在研究openwrt mipsle架构 上运行go语言编译出来的程序 一运行就报 Illegal instruction 这样的错误 百度和Google搜索了一遍 得出两种解决方案 PS 更新一遍 当时写这个文档的时候没有发现Go
  • JavaScript(6)-字符串的定义和使用,字符串的属性和方法及Math

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 字符串的定义和使用 1 字符串的定义 2 new String 和String 的区别 二 字符串的属性和方法 1 字符串的属性 2 字符串的方法 函数
  • 软件测试DAY02

    黑盒测试定义 黑盒测试相对于白盒测试而言 并不关心被测对象的内部实现 而是针对被测对象提供的外部功能与规格来设计测试用例进行的测试 黑盒测试分类 功能测试 性能测试 可用性测试 可靠性测试 安全性测试 客服务性测试 组网解决方案测试 常见黑
  • 贝叶斯分类算法及其matlab代码

    贝叶斯分类是一类分类算法的总称 这类算法均以贝叶斯定理为基础 故统称为贝叶斯分类 贝叶斯分类是一类利用概率统计知识进行分类的算法 其分类原理是贝叶斯定理 贝叶斯定理是由18世纪概率论和决策论的早期研究者Thomas Bayes发明的 故用其
  • Error:(x, xx) java: 找不到符号符号:类 xxx位置:程序包 xxx.xxx,只能通过mvn idea:module重新构建.iml文件

    程序运行时报找不到包类错误 折腾了一整天 最后只找到了临时解决办法 删除项目 项目名称 iml文件 通过 mvn idea module命令重新生成一个 iml文件 至此只能临时解决项目运行问题 当修改pom文件或者重新使用maven命令c
  • 【小蓓学AD20】如何修改原理图右下角的标题栏

    第一步 在原理图页面双击边缘 在右边可看到如图1所示界面 图1 取消勾选Title Block 第二步 单击Template 进入如图2所示页面 点击按钮 在下拉框里选择你的模板路径 对图3的弹出框不做修改 单击 确定 图2 图3 完成效果
  • 机器学习--决策树(10)

    一 基本概念 1 1 是什么 分类决策树模型是一种描述对实例进行分类的树形结构 相当于if then结构 决策树由节点和有向边构成 节点有两种 一种是内部节点 表示一个特征或者属性 另一种是叶子节点 表示一个决策结果 1 2 优缺点 优点
  • Fedora的启动方式(命令行启动)

    Linux有6种不同的运行级别 默认的情况下Fedora安装完成后是从X Window启动的 X Window占用系统资源很大 所以对于我们仅仅想使用命令行模式的人来说 界面那么大 耗费资源太多有些浪费 那如何让Fedora从命令行启动而不
  • 卷麻了,00后测试用例写的比我还好,简直无地自容......

    经常看到无论是刚入职场的新人 还是工作了一段时间的老人 都会对编写测试用例感到困扰 例如 如何编写测试用例 作为一个测试新人 刚开始接触测试 对于怎么写测试用例很是头疼 无法接触需求 只能站在用户角度去做测试 但是这样情况会导致不能全方位测
  • parallel scavenge 与parnew 区别:

    Parallel Scavenge收集器是一个新生代收集器 它也是使用复制算法的收集器 又是并行的多线程收集器 看上去和ParNew都一样 那它有什么特别之处呢 Parallel Scavenge收集器的特点是它的关注点与其他收集器不同 C
  • 一款盲盒的交友软件叫什么(微信恋爱脱单交友盲盒小程序制作开发介绍)

    盲盒的交友软件一般叫做叫 盲盒脱单神器 月老交友盲盒或者是叫做一元交友等名称都是运营商自己随便起的 微信恋爱脱单交友盲盒小程序 一般情况是以H5网页的形式进行使用 做成微信小程序的形式需要相关资质 主要功能有 幻灯片 放入盒子 随机匹配 星
  • git clone指定分支拉代码、版本回退、log/reflog对比

    指定分支clone代码 1 git clone 不指定分支 默认就是master git clone http 10 1 1 11 service tmall service git 2 git clone 指定分支 git clone b
  • 【2022/2023年硕士研究生408计算机学科考试大纲原文】+【2009-2021年408统考真题+解析PDF】

    文章目录 2009 2021年408统考真题 解析 PDF版 I 考试性质 II 考查目标 III 试形式和试卷结构 一 试卷满分及考试时间 二 答题方式 三 试卷内容结构 四 试卷题型结构 IV 考查内容 数据结构 一 线性表 二 栈 队
  • CAS 5.3自定义 登录

    自定义认证校验策略 我们知道CAS为我们提供了多种认证数据源 我们可以选择JDBC File JSON等多种方式 但是如果我想在自己的认证方式中可以根据提交的信息实现不同数据源选择 这种方式就需要我们去实现自定义认证 自定义策略主要通过现实
  • 网页中插入图片的代码

    本文转载至 http www luke99 com celuechuangyi 2011 05 6912 html 如何在网页中插入图片呢 只要有图片的地址 就可以通过代码设置而放入我们的网页的 代码具体如下 img src 其中蓝色部分为
  • 牛客网题集——Min Value(逻辑)

    Min Value 牛客网测试平台 题意 一个由 N 个数组成的序列 a1 a2 a3 an 1 an 从中任选两个数 ai 和 aj 使得 ai aj 的绝对值最小 并且计算出 i j 的值 其中 i j 输入描述 输入第一行包含一个正整
  • 调用高德地图展示车辆行驶轨迹

    如何在页面中使用高德地图并分页展示多段历史轨迹 引入高德地图的JavaScript API 打开index html key 后面的内容是你自己在高德上申请 的key 引入高德组件 配置webpack 找到webpack base conf