vue使用高德地图实现轨迹显隐

<template>
  <div>
    <el-button type="primary" @click="pathShowOrHide">
      轨迹显/隐
    </el-button>

    <div id="container" />
  </div>
</template>

<script>
import AMapLoader from '@amap/amap-jsapi-loader'

export default {
  name: 'MapView',

  data() {
    return {
      map: null,
      PathSimplifier: null,
      $: null,
      pathState: true
    }
  },

  mounted() {
    this.initAMap()
  },

  unmounted() {
    this.map?.destroy()
  },

  methods: {

    initPage(PathSimplifier, $) {
      const pathSimplifierIns = new PathSimplifier({
        zIndex: 100,
        // autoSetFitView:false,
        map: this.map, // 所属的地图实例

        getPath: function(pathData, pathIndex) {
          return pathData.path
        },

        getHoverTitle: function(pathData, pathIndex, pointIndex) {
          return null
        }
      })

      window.pathSimplifierIns = pathSimplifierIns

      pathSimplifierIns.setData([{
        name: '测试',
        path: [
          [116.405289, 39.904987],
          [113.964458, 40.54664],
          [111.47836, 41.135964],
          [108.949297, 41.670904]
        ]
      }])

      const pathNavigatorStyles = [{
        width: 16,
        height: 24,
        content: 'defaultPathNavigator'
      }
      ]

      function extend(dst) {
        if (!dst) {
          dst = {}
        }

        const slist = Array.prototype.slice.call(arguments, 1)

        for (let i = 0, len = slist.length; i < len; i++) {
          const source = slist[i]

          if (!source) {
            continue
          }

          for (const prop in source) {
            if (source.hasOwnProperty(prop)) {
              dst[prop] = source[prop]
            }
          }
        }
        return dst
      }

      let idx = 0

      const navg1 = pathSimplifierIns.createPathNavigator(0, {
        loop: true,
        speed: 1000000,
        pathNavigatorStyle: extend({}, pathNavigatorStyles[0])
      })

      navg1.start()

      function changeNavgContent() {
        // 获取到pathNavigatorStyle的引用
        const pathNavigatorStyle = navg1.getStyleOptions()

        // 覆盖修改
        extend(pathNavigatorStyle, pathNavigatorStyles[(++idx) % pathNavigatorStyles.length])

        // 重新绘制
        pathSimplifierIns.renderLater()
      }

      setInterval(changeNavgContent, 500)
    },

    initAMap() {
      const that = this
      AMapLoader.load({
        key: 'ed030cd90d1a6014ea01f26d51250f40', // 申请好的Web端开发者Key,首次调用 load 时必填
        version: '2.0', // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
        plugins: ['AMap.Scale'], // 需要使用的的插件列表,如比例尺'AMap.Scale',支持添加多个如:['...','...']
        AMapUI: {
          version: '1.1',
          plugins: ['overlay/SimpleMarker']
        }// 需要使用的的插件列表,如比例尺'AMap.Scale'等
      })
        .then((AMap) => {
          this.map = new AMap.Map('container', {
            // 设置地图容器id
            viewMode: '3D', // 是否为3D地图模式
            zoom: 4, // 初始化地图级别
            center: [116.397428, 39.90923] // 初始化地图中心点位置
          })
          AMapUI.load(['ui/misc/PathSimplifier', 'lib/$'], (PathSimplifier, $) => {
            if (!PathSimplifier.supportCanvas) {
              alert('当前环境不支持 Canvas!')
              return
            }
            this.PathSimplifier = PathSimplifier
            this.$ = $
            this.initPage(PathSimplifier, $)
          })
        })
        .catch((e) => {
          console.log(e)
        })
    },

    pathShowOrHide() {
      if (this.pathState) {
        window.pathSimplifierIns.setData([])
        this.pathState = false
      } else {
        this.initPage(this.PathSimplifier, this.$)
        this.pathState = true
      }
    }
  }
}
</script>

<style scoped>
#container {
  width: 100%;
  height: 300px;
}
</style>

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

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

相关文章

Linux基础环境搭建(CentOS7)- 安装Scala和Spark

#Linux基础环境搭建&#xff08;CentOS7&#xff09;- 安装Scala和Spark Linux基础环境搭建&#xff08;CentOS7&#xff09;- 安装Scala和Spark 大家注意以下的环境搭建版本号&#xff0c;如果版本不匹配有可能出现问题&#xff01;&#xff08;spark不要下2.4版本的 会报错…

MySQL 日志之 binlog 格式 → 关于 MySQL 默认隔离级别的探讨

开心一刻 image 产品还没测试直接投入生产时&#xff0c;这尼玛... 背景问题 再讲 binlog 之前&#xff0c;我们先来回顾下主流关系型数据库的默认隔离级别&#xff0c;是默认隔离级别&#xff0c;不是事务有哪几种隔离级别&#xff0c;别会错题意了 1、Oracle、SQL Server 的默…

fastGpt

参考本地部署FastGPT使用在线大语言模型 1 rockylinx 1 ollama安装 在rockylinux中安装的&#xff0c;ollama由1.5G&#xff0c;还是比较大&#xff0c;所有采用在windows下下载&#xff0c;然后安装的方式&#xff0c;linux安装 tar -C /usr -xzf ollama-linux-amd64.tgz #…

让汇报结构清晰且重点突出的方法——金字塔原理

文章目录 1. 引入2. 什么是金字塔原理&#xff1f;3. 金字塔原理的 4 个要点4. 情景模拟&#xff08;项目进展汇报&#xff09;5. 小结 1. 引入 小编是一名平时埋头码代码&#xff0c;很少需要做正式的汇报&#xff0c;并且曾经一度不屑于只会做PPT和“讲故事”的人&#xff0…

小小猫棒onu替换家用光猫,薅运营商带宽羊毛,突破1000M

小小猫棒onu 一、总体步骤 1 记录原来光猫信息 主要包括SN&#xff0c;ploam密码&#xff0c;loid、loid密码、 mac、上网的vlan id等 一般gpon采用SN、ploam密码、SNploam密码三种中的一种认证方式 一般Epon采用loid&#xff08;逻辑id&#xff09;、mac、loid mac三种中…

8款全生命周期项目管理工具测评与比较

本文测评的8大主流全生命周期项目管理系统包括: 1. PingCode&#xff1b;2. Worktile&#xff1b;3. 腾讯Tapd&#xff1b;4. 蓝湖&#xff08;Lanhu&#xff09;&#xff1b;5. 有道云协作&#xff1b;6. ProcessOn&#xff1b;7. Monday.com&#xff1b;8. Basecamp。 在众多…

java-web-day5

1.spring-boot-web入门 目标: 开始最基本的web应用的构建 使用浏览器访问后端, 后端给浏览器返回HelloController 流程: 1.创建springboot工程, 填写模块信息, 并勾选web开发的相关依赖 注意: 在新版idea中模块创建时java下拉框只能选17, 21, 23 这里选17, maven版本是3.6.3, 很…

自适应神经网络架构:原理解析与代码示例

个人主页&#xff1a;chian-ocean 文章专栏 自适应神经网络结构&#xff1a;深入探讨与代码实现 1. 引言 随着深度学习的不断发展&#xff0c;传统神经网络模型在处理复杂任务时的局限性逐渐显现。固定的网络结构和参数对于动态变化的环境和多样化的数据往往难以适应&#…

【32】C++流

目录 C流 读写文件&#xff1a;文件流 对文本文件流读写 写文本文件 读文本文件 对二进制文件流读写 写二进制文件 读二进制文件 对文件流按格式读写取数据 按指定格式写文件 按指定格式读文件 C流 IO: 向设备输入数据和输出数据 C的IO流 设备: 文件控制台特定的数…

前端对一个增删改查的思考

1、来源&#xff1a;dify dify/web/app/components/workflow/nodes/question-classifier/components/class-list.tsx at main langgenius/dify GitHub 2、代码流程&#xff1a; 3、思索问题&#xff1a; 1、为啥要用return形式&#xff0c;而不是value直接当函数&#xff1…

网络原理(数据链路层)->以太网帧格式解

前言 大家好我是小帅&#xff0c;今天我们来了解以太网帧格式 个人主页 文章目录 1.数据链路层1.1 认识以太⽹1.2 MAC地址&#xff08;⽹卡的硬件地址&#xff09;1.2.1 对⽐理解MAC地址和IP地址 1.3 认识MTU1.4 MTU对IP协议的影响1. 5 MTU对UDP协议的影响1.6 MTU对于TCP协议的…

高校智慧党建系统

摘 要 随着社会的发展&#xff0c;系统的管理形势越来越严峻。越来越多的用户利用互联网获得信息&#xff0c;但各种信息鱼龙混杂&#xff0c;信息真假难以辨别。为了方便用户更好的获得高校智慧党建管理信息&#xff0c;因此&#xff0c;设计一种安全高效的高校智慧党建系统…

【jq+css+html】移动web案例课美团外卖

首页 <!DOCTYPE html> <html> <head><title>首页</title><meta charset"utf-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0, maximum-scale1.0, user-scalable0" /><scr…

【01初识】-初识 RabbitMQ

目录 学习背景1- 初识 MQ1-1 同步调用什么是同步调用&#xff1f;小结&#xff1a;同步调用优缺点 1-2 异步调用什么是异步调用&#xff1f;小结&#xff1a;异步调用的优缺点&#xff0c;什么时候使用异步调用&#xff1f; 1-3 MQ 技术选型 学习背景 异步通讯的特点&#xff…

centos下面的jdk17的安装配置

文章目录 1.基本指令回顾2.jdk17的安装到这个centos上面2.1首先切换到这个root下面去2.2查看系统jdk版本2.3首先到官网找到进行下载2.4安装包的上传2.5jdk17的安装包的解压过程2.6配置环境变量2.7是否设置成功&#xff0c;查看版本 1.基本指令回顾 ls:list也就是列出来这个目录…

基于【图像识别】基于模板匹配实现蓝色、绿色、黄色车牌识别附matlab代码

车牌识别是智能交通系统的重要部分&#xff0c;主要涉及模式识别、数字图像处理、计算机应用和人工智能等学科。车牌识别过程主要由车牌定位、车牌字符分割和车牌字符识别组成。文中主要对车牌字符识别进行了研究&#xff0c;并在MATLAB环境下进行了相应的实验。文中在车牌字符…

SpringAOP:对于同一个切入点,不同切面不同通知的执行顺序

目录 1. 问题描述2. 结论结论1&#xff1a;"对于同一个切入点&#xff0c;同一个切面不同类型的通知的执行顺序"结论2&#xff1a;"对于同一个切入点&#xff0c;不同切面不同类型通知的执行顺序" 3. 测试环境&#xff1a;SpringBoot 2.3.4.RELEASE测试集合…

jeecgbootvue2菜单路由配置静态文件夹(public)下的html

需求:想要在菜单配置src/assets/iconfont/chart.html显示页面(目的是打包上线以后运维依然可以修改数据) 官网没有相关数据&#xff1a;菜单配置说明 JeecgBoot 开发文档 看云 问题现象: 我把文件放在src/assets/iconfont/chart.html然后在vue中作为 iframe 的 src 属性&am…

CD34:揭开祖细胞的身份之谜

前 言 CD34是广泛存在于各种干细胞或祖细胞表面的糖蛋白&#xff0c;被确定为造血干细胞&#xff08;HSC&#xff09;和造血祖细胞&#xff08;HPC&#xff09;的生物标志物&#xff0c;具有粘附分子的作用。CD34作为多种非造血细胞标志物&#xff0c;同时也在多种癌症干细胞…

#渗透测试#红蓝对抗#Src漏洞挖掘 介绍-Yakit(3)

免责声明 本教程仅为合法的教学目的而准备&#xff0c;严禁用于任何形式的违法犯罪活动及其他商业行为&#xff0c;在使用本教程前&#xff0c;您应确保该行为符合当地的法律法规&#xff0c;继续阅读即表示您需自行承担所有操作的后果&#xff0c;如有异议&#xff0c;请立即停…