参考:https://elemefe.github.io/vue-amap/#/zh-cn/coverings/text

https://lbs.amap.com/api/javascript-api/reference-amap-ui/mass-data/pathsimplifier/

1、在vue 项目中的 main.js 中加入

import VueAMap from 'vue-amap'
/* 高德地图的引入 */
VueAMap.initAMapApiLoader({key: '5ab20b9b8aad8959b51d74f0cc3bc0ce',plugin: ['AMap.Scale', 'AMap.OverView', 'AMap.ToolBar', 'AMap.MapType'],uiVersion: '1.0', // ui库版本,不配置不加载,v: '1.4.4'
});Vue.use(VueAMap);

2、在 index.html 中加入

<script src="http://webapi.amap.com/maps?v=1.4.6&key=e598f982202f82de4802cefed15fe8e5"></script>
<script src="//webapi.amap.com/ui/1.0/main.js?v=1.0.11"></script>

注意:其中的 key 需要自己高德官网去注册获得。

3、这个时候 要把 高德组件加入 项目

在 terminal 执行 npm install --save vue-amap

下面是具体的定位代码

<template><div class="myTable"><div class="input searchInfo" ><span><span>ICCID:</span><input v-model="iccid"  placeholder="请输入"></input></span><el-button type="primary" @click="findPosition" style="float: right; position: relative;left: -20px;" >搜索</el-button></div><div class="amap-page-container"><el-amap vid="amapDemo" :zoom="zoom" :center="center" class="amap-demo"><el-amap-marker v-for="(marker, index) in markers" :position="marker.position" :content="marker.content" :angle="marker.angle" :events="marker.events" :title="marker.title" :visible="marker.visible" :draggable="marker.draggable" :vid="index"></el-amap-marker></el-amap></div></div></template><script>import {axios} from "../../config/axios";export default {name: 'dev-position',data () {return {iccid:'',zoom: 15,markers: [],center: [114.037651, 22.627568],}},methods:{findPosition(){axios.get("/api/contrail/flashPosition",{params:{iccid:this.iccid}}).then(result => {var oneLogLat = result.data.data;if (result.data.code != 200 || oneLogLat === null) {console.log(result)return}var oneArr = [];var loglat = oneLogLat.split(",");const currentLng = parseFloat(loglat[5]);const currentLat = parseFloat(loglat[3]);oneArr.push(currentLng);oneArr.push(currentLat);const dir = loglat[9]; // 方向角this.myMarkers(oneArr, dir);});},myMarkers(val,dir){let marker = {position: val,events: {click: () => {console.log("获取信息失败")},},content:'<img src="http://test.blackview4g.com:8280/images/car.png" />',angle:dir,title:title,};this.markers.push(marker);},}}
</script>
<style scoped>.input input{position: relative;display: inline-block;border-radius: 5px;height: 20px;margin-right: 20px;font-size: 16px;line-height: 32px;width: 250px;padding-left: 8px;}.amap-page-container {height: 600px;}</style>

下面是具体的轨迹代码

<template><div class="myTable"><div class="input searchInfo" ><span><span>ICCID:</span><input v-model="iccid"  placeholder="请输入"></input></span><span><span>时间:</span><el-date-pickerv-model="startTime"type="daterange"range-separator="至"start-placeholder="开始日期"end-placeholder="结束日期"></el-date-picker></span><el-button type="primary" @click="findTrackData" style="float: right; position: relative;left: -20px;" >搜索</el-button></div><div class="amap-page-container"><div id="amap-show" class="amap-demo" style="height: 600px;"></div></div></div>
</template><script>// NPM 方式import { lazyAMapApiLoaderInstance } from 'vue-amap';import carUrl from '../../assets/img/car.png'export default {name: "track-show",data () {return {iccid:'',startTime:'',}},created() {this.initMap();console.log("thisDate:",this.startDate);},methods:{findTrackData(){console.log("thisDate:",this.startDate);this.initPage();},getGPSData(){this.$http.get("api/contrail/trackLocations",{params:{iccid: this.iccid,date:this.startTime}}).then(result => {let code = result.data.code;let gpsData = result.data.data;this.loadState = false;if (code !== 200 || gpsData === "" || gpsData === null) {this.initMap();return}var strArr = gpsData.split(";");var length = strArr.length-1;var resultStr = "";for (var i = 0; i < length; i++) {var gpsArr = strArr[i].split(",");if(gpsArr[11]  !== "1") {continue; // 去除非 GPS 数据}var jd = gpsArr[3];var wd = gpsArr[5];resultStr += "[" + wd + "," + jd + "],";}if(resultStr === "") {this.msg ();this.initMap();return;};resultStr = "[" + resultStr + "]";this.initPage(resultStr);})},getDurationGPSData(){this.$http.get("api/contrail/durationLocations",{params:{iccid: this.iccid, startTime:this.startDate, endTime:this.startDate }}).then(result => {let code = result.data.code;let gpsData = result.data.data;if (code !== 200 || gpsData === "" || gpsData === null) {this.msg ();this.initMap();return}var strArr = gpsData.split(";");var length = strArr.length-1;var resultStr = "";for (var i = 0; i < length; i++) {var gpsArr = strArr[i].split(",");if(gpsArr[11]  !== "1") {continue; // 去除非 GPS 数据}var jd = gpsArr[3];var wd = gpsArr[5];resultStr += "[" + wd + "," + jd + "],";}if(resultStr === "") {this.msg();this.initMap();return;}resultStr = "[" + resultStr + "]";this.initPage(resultStr);})},initMap(){lazyAMapApiLoaderInstance.load().then(() => {this.map = new AMap.Map('amap-show', {center: [114.037939,22.627198],zoom: 11})});},initPage(){console.log("===== init===");lazyAMapApiLoaderInstance.load().then(() => {this.map = new AMap.Map('amap-show', {center: [114.037939,22.627198],zoom: 6},AMapUI.loadUI(['misc/PathSimplifier'], (PathSimplifier) => {if (!PathSimplifier.supportCanvas) {alert('当前环境不支持 Canvas!');return;}//创建组件实例var pathSimplifierIns = new PathSimplifier({zIndex: 100,map: this.map, //所属的地图实例getPath: (pathData) => {//将gps描述的所有的点数放到全局变量pathData.path.length;                                    //返回轨迹数据中的节点坐标信息,[AMap.LngLat, AMap.LngLat...] 或者 [[lng|number,lat|number],...]return pathData.path;},getHoverTitle: (pathData, pathIndex, pointIndex)=> {//返回鼠标悬停时显示的信息if (pointIndex >= 0) {//鼠标悬停在某个轨迹节点上return pathData.name + ',点:' + pointIndex + '/' + pathData.path.length;}//鼠标悬停在节点之间的连线上return pathData.name + ',点数量' + pathData.path.length;},renderOptions: {//轨迹线的样式pathLineStyle: {strokeStyle: 'red',lineWidth: 3,   //线宽度dirArrowStyle:{stepSpace:15  //stepSpace: {number} 箭头排布的间隔,单位像素}}}});//这里构建两条简单的轨迹,仅作示例// var gpsData = eval(data);let gpsData =  [[116.405289, 39.904987],[113.964458, 40.54664],[111.47836, 41.135964],[108.949297, 41.670904],[106.380111, 42.149509],[103.774185, 42.56996],[101.135432, 42.930601],[98.46826, 43.229964],[95.777529, 43.466798],[93.068486, 43.64009],[90.34669, 43.749086],[87.61792, 43.793308]];pathSimplifierIns.setData([{name: '轨迹0',path: gpsData}]);var nav = pathSimplifierIns.createPathNavigator(0, {loop: true,speed: 400000,pathNavigatorStyle: {width: 16,height: 32,content: PathSimplifier.Render.Canvas.getImageContent(carUrl, onload, onerror),strokeStyle: null,fillStyle: null}});nav.start();/*var currentIndex = -1; //定义一个临时 变量存储 navg move方法触发频发,展示数据只展示一次let _this = this;nav.on('move',function() {var onecuso = nav.getCursor().idx; //move 一直触发 获取 轨迹中 的下标if(onecuso > pointNum-1)return false;if(currentIndex !== onecuso){currentIndex = onecuso;_this.speed1 = (speedArr[onecuso]*3.6).toFixed(1);  // 保留一位小数}});*/}))});},msg() {this.$notify.info({title: '提示',message: '暂无轨迹数据'});},}}
</script><style scoped>.input input{position: relative;display: inline-block;border-radius: 5px;height: 20px;margin-right: 20px;font-size: 16px;line-height: 32px;width: 250px;padding-left: 8px;}
</style>

vue 中加入高德的 定位和轨迹相关推荐

  1. VUE中使用高德地图.做个轨迹添加器,为路线规划做数据

    准备工作 使用前准备 : 高德地图key 使用插件: vue-amap 1.npm安装vue-amap npm install vue-amap --save 2 在mai.js中引入 import ...

  2. Vue中使用高德地图

    Vue中使用高德地图定位及poi搜索,以及其他插件的使用方法 1.第一步安装 npm install vue-amap --save 2.引入vue-amap main.js import Vue f ...

  3. vue中引用高德地图根据经纬度计算两地距离

    vue中引用高德地图根据经纬度计算两地距离 一.示例图: npm安装 npm install vue-amap --save 在min.js文件中引入vue-amap import VueAMap f ...

  4. 在Vue中使用高德地图

    在Vue中使用高德地图 一.如何在Vue中引入基础高德地图 1.步骤一:注册并登录高德地图开放平台,申请密钥 2.步骤二:安装高德地图加载器 3.封装一个自定义地图组件,并初始化地图 二.根据关键词搜 ...

  5. vue项目使用高德地图定位当前地址

    vue项目使用高德地图定位当前地址 一.在项目中安装vue-amap插件 二.页面代码 三.data数据 一.在项目中安装vue-amap插件 1.最终效果 2.安装命令 npm install vu ...

  6. vue中引入高德js

    项目概述: 通过在vue中引入高德js,实现地图的加载呈现,以及在地图中实现设备坐标定位,并在设备列表点击的同时进行定位点的切换和地图视图的切换,在点击坐标点的时候可以弹出相关介绍信息. 第一步:在i ...

  7. 解决vue中绝对定位或固定定位在底部的按钮随键盘移动的问题

    解决vue中绝对定位或固定定位在底部的按钮随键盘移动的问题 参考文章: (1)解决vue中绝对定位或固定定位在底部的按钮随键盘移动的问题 (2)https://www.cnblogs.com/zlfP ...

  8. Vue中使用高德地图,简单明了

    一.使用步骤 1.在vue中引入高德地图的加载器   npm i @amap/amap-jsapi-loader --save 在自己的组件中去引用 <template>//这个div就是 ...

  9. Vue中使用高德地图(vue-amap)的采坑记录小白入门

    这里写目录标题 写在开始 step.1 安装组件 step.2 引入组件 step.3注册高德高德开发者账号,申请KEY step.4 正式使用 写在开始 俗话说授人以鱼不如授人以渔,直接记录代码的话 ...

最新文章

  1. Linux日常之允许或禁止指定用户或IP进行SSH登录
  2. 冒泡排序python代码_Python-排序-冒泡排序-优化
  3. asp.net mvc+httpclient+asp.net mvc api入门篇
  4. 微信小程序实现时间戳转为时间格式
  5. python 解方程 sympy_用Python和Sympy求解方程并得到数值答案
  6. 保护 WordPress 安全的10个方法
  7. webgl渲染Yuv420P图像
  8. 浏览器网页操作 EXCEL 示例
  9. pcs7服务器没有报警信息,PCS7操作员站体系结构
  10. linux打印机验证密码,HP LaserJet Pro打印机远程管理员密码泄露漏洞
  11. 小米前端实习电话面试一面
  12. 交流耦合仪表放大器(AC-Coupled Instrumentation Amplifier)
  13. 【程序人生】IT界含金量高的证书
  14. python怎么改成白底_教你用OpenCV 和 Python给证件照换底色(蓝底 -红底-白底)...
  15. 2014-5-20 摇摇车现在已经是思杨的完美座驾了
  16. Ethereum开发
  17. 数据结构与算法————无向图
  18. 怎么把aac转mp3格式?这几种转换方式建议学习一下
  19. 选择WMS仓库管理系统之前,企业应该准备些什么
  20. 工程模式下操作手机系统

热门文章

  1. Shor’s algorithm
  2. Android NFC手机的三种工作模式
  3. IDM下载器 v6.38.20 最新中文版 免费的多线程下载工具
  4. 深入理解HTML表格秘籍
  5. 解决Sublime出现中文乱码的情况
  6. 2021超全大数据面试宝典,吐血总结十万字,大数据面试收藏这一篇就够了
  7. 上海羽毛球场预定app_羽球生活app下载-羽球生活(羽毛球场预定)v2.2.29_5577安卓网...
  8. 利用autossh反向代理实现内网穿透
  9. 龙芯中科科创板上市:市值357亿 成国产CPU第一股
  10. 探讨位操作、算术右移、逻辑右移