vue3使用leaflet+trackplayer实现非地图动画轨迹(市场平面图动态轨迹)

news/2024/9/18 10:42:17/ 标签: vue.js

vue3使用leaflet+trackplayer实现非地图动画轨迹(市场平面图动态轨迹)

在这里插入图片描述

先下载 leaflet 和 leaflet-trackplayer两个主要库

leaflet官方文档

npm install leaflet 
npm install leaflet-trackplayer

然后在页面中引用

html

<template><button @click="playMap">播放</button><div id="map"></div>
</template>

js

import L from 'leaflet';
import 'leaflet/dist/leaflet.css';
import 'leaflet-trackplayer';

引用完成后我们开始写主要逻辑

<script setup>
import L from 'leaflet';
import 'leaflet/dist/leaflet.css';
import 'leaflet-trackplayer';
import { onMounted, ref } from 'vue';
//背景图遮盖地图的图片(市场图片)
function getImageUrl() {return new URL(`./map.png`, import.meta.url).href;
}
//trackplayern播放器
let track = null;
//测试的点位
const testList = ref([]);
//生命周期挂载
onMounted(() => {let bounds = [[34.255, 108.885], // 左上角的坐标[34.27, 108.918], // 右下角的坐标];//创建地图对象let map = L.map('map', { attributionControl: false });//添加地图图层L.imageOverlay(getImageUrl(), bounds).addTo(map);//模拟一段轨迹数据 (真实经纬度地址哦~)let path = [ { lat: 34.257766231787095, lng: 108.90156984329225 },{ lat: 34.257854907014014, lng: 108.90483140945435 },{ lat: 34.257854907014014, lng: 108.90822172164918 },{ lat: 34.260745668218206, lng: 108.90820026397706 },{ lat: 34.26298017628813, lng: 108.90813589096071 },{ lat: 34.262944708369695, lng: 108.90485286712648 },{ lat: 34.262944708369695, lng: 108.90156984329225 },{ lat: 34.26514369102872, lng: 108.90154838562013 },{ lat: 34.26512595752755, lng: 108.89824390411378 },{ lat: 34.26516142452615, lng: 108.8950252532959 },{ lat: 34.265055023485516, lng: 108.8917636871338 },{ lat: 34.260887543511274, lng: 108.89180660247804 },{ lat: 34.257376059678286, lng: 108.89172077178956 },{ lat: 34.257447000196315, lng: 108.89508962631227 },];//根据背景图片的坐标设置地图的显示范围map.fitBounds(bounds);//定义沿着轨迹移动的markerlet markerIcon = L.icon({iconSize: [24, 54], // marker的大小iconUrl: new URL('/public/tool/arco.png', import.meta.url).href, // marker的图片iconAnchor: [11.5, 27], // marker的偏移});//创建播放器对象并添加至地图track = new L.TrackPlayer(path, { markerIcon, panTo: false }).addTo(map);//地图设置到合适的缩放级别map.setZoom(16, { animate: false });//点击地图添加点位map.on('click', function (e) {testList.value.push(e.latlng); //获取的经纬度console.log(JSON.stringify(testList.value));});
});
//播放轨迹
const playMap = () => {track.start();
};
</script>
<style scoped>
#map {height: 100vh;width: 100%;
}
</style>

TrackPlayer轨迹动画的更多配置网站
https://github.com/weijun-lab/Leaflet.TrackPlayer/blob/master/README.zh-CN.md

其实就是在地图上盖了一层你所需要的市场图片 轨迹还是按照真实经纬度走的 (哭笑不得)
希望对你有帮助


http://www.ppmy.cn/news/1525115.html

相关文章

代码随想录打卡Day29

今天的题目尊嘟好难…除了第三题没看视频&#xff0c;其他的题目都是看了视频才做出来的。二刷等我。 134. 加油站 感觉这道题和之前的53. 最大子序和有点像&#xff0c;最大子序和是一旦当前总和为负数则立即抛弃当前的总和&#xff0c;从下个位置重新开始计算&#xff0c;而…

深入剖析 MQTT 协议:物联网通信的核心力量

摘要&#xff1a; 本文全面深入地探讨了 MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;协议。详细阐述了 MQTT 协议的起源与发展背景&#xff0c;介绍其基本概念、特点及工作原理。深入分析了 MQTT 的架构组成&#xff0c;包括客户端、代理服务器及主题的作…

HivisionIDPhotos

在服务器Ubuntu22.04系统下&#xff0c;HivisionIDPhotos的部署 一、安装环境&#xff1a;ubuntu基本环境配置1.更新包列表&#xff1a;2. 安装GPU驱动程序3.查看显卡信息4.下载并安装 CUDA 12.3 二、安装miniconda环境1. 下载miniconda32. 安装miniconda33. 打开用户环境编辑页…

【IP协议】IP协议报头结构(上)

IP 协议报头结构 4位版本 实际上只有两个取值 4 > IPv4&#xff08;主流&#xff09;6 > IPv6 IPv2&#xff0c;IPv5 在实际中是没有的&#xff0c;可能是理论上/实验室中存在 4位首部长度 IP 协议报头也是变长的&#xff0c;因为选项个数不确定&#xff0c;所以报头长…

apifox 调试接口问题

解决laravel 表单验证时出现的404。只要是不通过验证就会出现404。主要是调用闭包函数内的fail函数。就会出现404 $request->validate([name>[required,function($attributes,$value,$fail)use ($user){if(!$user){$fail(User not found);}}],]); 调试工具会出现404. 解…

数据库导入

1.在导入数据库之前&#xff0c;需要数据库存在&#xff0c;才能导入数据&#xff0c;如果不存在需要创建同名的数据库&#xff1a; 创建数据库命令&#xff1a;sudo mysql -u root -p123456 -e CREATE DATABASE public_database; "public_database" :为数据库名称。…

代码随想录训练营第29天|控制变量

134. 加油站 class Solution { public:int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {int cur0, total0, start0;for(int i0; i<gas.size(); i){curgas[i]-cost[i];totalgas[i]-cost[i];if(cur<0){starti1;cur0;}}if(start>gas…

UDP协议对比普通协议有什么优势

在网络通信中&#xff0c;传输控制协议&#xff08;TCP&#xff09;和用户数据报协议&#xff08;UDP&#xff09;是两种最常用的传输层协议&#xff0c;它们在数据传输中扮演着不同的角色&#xff0c;适用于不同的场景。TCP以其可靠性和顺序传输著称&#xff0c;而UDP则以速度…

【Kubernetes】常见面试题汇总(七)

目录 20.简述 Kubernetes 创建一个 Pod 的主要流程&#xff1f; 21.简述 Kubernetes 中 Pod 的重启策略&#xff1f; 20.简述 Kubernetes 创建一个 Pod 的主要流程&#xff1f; Kubernetes 中创建一个 Pod 涉及多个组件之间联动&#xff0c;主要流程如下&#xff1a; &#…

[3.4]【机器人运动学MATLAB实战分析】PUMA560机器人正运动学MATLAB计算

PUMA560是六自由度关节型机器人,其6个关节都是转动副,属于6R型操作臂。各连杆坐标系如图1,连杆参数如表1所示。 图1 PUMA560机器人的各连杆坐标系 表1 PUMA560机器人的连杆参数 按D-H方法建立操作臂运动学方程。建立PUMA560机器人运动学方程的步骤如下࿱

利用熵权法进行数值评分计算——算法过程

1、概述 在软件系统中&#xff0c;研发人员常常遇上需要对系统内的某种行为/模型进行评分的情况。例如根据系统的各种漏洞情况对系统安全性进行评分、根据业务员最近操作系统的情况对业务员工作状态进行打分等等。显然研发人员了解一种或者几种标准评分算法是非常有利于开展研…

【即时通讯】轮询方式实现

技术栈 LayUI、jQuery实现前端效果。django4.2、django-ninja实现后端接口。 代码仓 - 后端 代码仓 - 前端 实现功能 首次访问页面并发送消息时需要设置昵称发送内容为空时要提示用户不能发送空消息前端定时获取消息&#xff0c;然后展示在页面上。 效果展示 首次发送需要…

软件设计师の第三章:数据库技术基础

✨博客主页&#xff1a; https://blog.csdn.net/m0_63815035?typeblog &#x1f497;《博客内容》&#xff1a;.NET、Java.测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识 &#x1f4e2;博客专栏&#xff1a; https://blog.csdn.net/m0_63815035/cat…

已开源!无限场景生成和高效数据迁移:3D金字塔扩散模型斩获ECCV24 Oral

作者主页&#xff1a; https://yuheng.ink/ 论文标题&#xff1a; Pyramid Diffusion for Fine 3D Large Scene Generation 导读&#xff1a; 本文通过设计一种新颖的金字塔扩散模型&#xff0c;为三维室外场景生成提供了一种从粗到细的策略。本文对金字塔扩散模型进行了大量实…

系统设计文档示例

设计文档示例 文章目录 设计文档示例一、整体架构二、业务或功能-模块设计2.1、需求说明2.2、交互流程2.3、页面设计2.4、功能实现逻辑2.4.1 API设计2.4.2 DB设计 三、 配置说明四、开发示例 一、整体架构 系统架构图简要说明部署架构图简要说明功能模块图简要说明技术架构:前…

Reactive 编程-Loom 项目(虚拟线程)

Reactive 编程与 Loom 项目&#xff08;虚拟线程&#xff09; Java 项目 Loom 是 Oracle 在 JVM 上的一项重大变革&#xff0c;旨在引入 虚拟线程&#xff08;Virtual Threads&#xff09;&#xff0c;以简化并发编程。传统的 Java 线程是重量级的&#xff0c;由操作系统管理&…

深入解析C++单例模式:从基础到线程安全的高效实现

引言 在C开发中&#xff0c;单例模式&#xff08;Singleton Pattern&#xff09; 是一种常见且重要的设计模式。它确保类的实例在整个程序生命周期中唯一&#xff0c;并提供一个全局访问点。这在日志管理、配置管理等场景中尤为常见。本篇博客将带你深入了解单例模式的实现原理…

单例模式的总结

常规模式:有属性/构造方法/普通方法&#xff0c;也可以在类中执行主方法&#xff0c;也可以在test类中执行主方法 单例模式是什么&#xff1f; 单例模式&#xff1a;类只有1个对象&#xff1b;保证一个类仅有一个实例&#xff0c;并提供一个访问它的全局访问点。单例模式是在内…

uniapp uni-table合并单元格

视图层 <uni-table border stripe emptyText"暂无更多数据" class"table_x"><!-- 表头行 --><uni-tr><uni-th align"center">患者姓名</uni-th><uni-th align"center">透析方式</uni-th>&…

常用设计模式的通俗解释和c语言实现

单例模式 单例模式确保一个类只有一个实例,并提供一个全局访问点。 通俗解释:想象一个公司只能有一个CEO。无论你如何尝试创建新的CEO,你总是会得到同一个人。 #include <stdio.h> #include <stdlib.h>typedef struct {int data; } Singleton;static Singleton* i…