vue3+leaflet开发地图入门教程(超级详细)

vue3+leaflet开发地图01

1.离线地图下载

​ 离线地图下载器有很多,网络上也很多文档,这里不再详细说明,根据项目要求下载对应的瓦片地图就好

2.leaflet官网及地图加载

​ Leaflet - 一个交互式地图 JavaScript 库 (leafletjs.cn)

​ 官网第一个案例就是加载地图,也很简单,不再详述

3.使用leaflet

3.1 实现动态线段

#安装
yarn add leaflet
#或者
npm i leaflet
#安装插件
npm install leaflet-ant-path
//引入插件 antpath
import {AntPath} from 'leaflet-ant-path'
//折线坐标
let path = [[维度,经度],[维度,经度]...]
//动态折线let gPath = antPath(path, {paused: false, //暂停  初始化状态reverse: false, //方向反转delay: 3000, //延迟,数值越大效果越缓慢dashArray: [15, 15], //间隔样式weight: 7, //线宽opacity: 0.8, //透明度color: '#0000FF', //颜色pulseColor: '#ffffff', //块颜色})//将动态折线添加到地图中即可gPath.addTo(map)

3.2 添加标记点

//设置标记图标样式和大小
let customIcon = L.icon({iconUrl: 'path/to/your/custom/icon.png',iconSize: [30, 30],iconAnchor: [15, 30],popupAnchor: [0, -30]
});
//鼠标悬停,变大图标
marker.on('mouseover', function() {marker.setIcon(highlightIcon);
});
//鼠标移走,变默认
marker.on('mouseout', function() {marker.setIcon(defaultIcon);
});

聚合标记

作用:在Leaflet中,可以通过使用插件如MarkerCluster来实现标记点聚合的功能。MarkerCluster插件可以自动将标记点聚合,并在用户操作地图时根据地图的缩放级别进行动态展示和隐藏。

// 添加标记点并配置聚合功能
var markers = L.markerClusterGroup();
// 创建标记点
var marker1 = L.marker([lat1, lng1]);
var marker2 = L.marker([lat2, lng2]);
// 将标记点添加到聚合组
markers.addLayer(marker1);
markers.addLayer(marker2);
// 将聚合组添加到地图
map.addLayer(markers);

3.3 添加点击事件

特别注意: Leaflet的事件监听器是一次性的,如果你没有重新添加监听器,事件就不会再次触发。核心代码如下:

// 定义点击事件处理函数
function onMarkerClick() {alert('Marker clicked!');//移除绑定事件marker.off('click');// 重新绑定事件,如果需要的话marker.on('click', onMarkerClick);
}
// 绑定点击事件
marker.on('click', onMarkerClick);//需要传参的话按照如下使用方法
function onMarkerClick(e, myCustomParam) {alert("Marker clicked with custom param: " + myCustomParam);
}
// 绑定点击事件,并传递自定义参数
marker.on('click', onMarkerClick.bind(null, marker,'myCustomValue'));

3.4 弹窗设置

使用setContent这个api可以灵活定制弹窗。若相似弹窗多,建议封装一个共用弹窗组件。

4.天地图和高德地图坐标转换

坐标系算法不一致,所以需要转换,参考文档:

高德地图更换天地图底图(坐标转换)—使用高德API(WMTS)_高德地址查询api 天地图-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java动态代理与Spring AOP中的Cglib动态代理详解

在Java编程中,动态代理是一种在运行时动态创建代理类及其对象的技术。通过动态代理,我们可以在不修改原有类代码的情况下,为这些类添加新的行为或功能。Java提供了两种主要的动态代理机制:基于接口的Java动态代理和基于类的Cglib动…

密钥派生算法介绍 及 PBKDF2(过时)<Bcrypt(开始淘汰)<Scrypt< Argon2(含Argon2d、Argon2i、Argon2id)简介

密钥派生算法介绍 https://blog.csdn.net/xcxhzjl/article/details/127297263 一、定义 密钥派生函数(Key Derivation Function)就是从一个密码产生出一个或多个密钥,具体就是从一个master key,password或者passphrase派生出一个或多个密钥&#xff0…

HCIP-Datacom-ARST必选题库_23_SNMP【1道题】

一、单选 1.某中型规模园区网络通过SNMP协议管理网络,该园区对于网络安SNMP哪个版本进行管理? 所有版本均可以实现 BSNMPV1 SNMPV2C SNMPV3

都2024 年了,可以卸载的VS Code 插件

在 VS Code 中,庞大的插件市场提供了丰富多样的扩展功能,以增强编码体验和效率。然而,如果你安装了很多插件,就可能会导致: 性能下降:过多的插件可能导致 VS Code 的启动速度变慢,特别是在启动或…

[2021最新]大数据平台CDH存储组件kudu之启用HA高可用(添加多个master)

今天在做kudu高可用的时候没有参考官网,直接按照常规方式(添加角色—>编辑属性—>启动)结果发现报错?然后参考了一下文档之后发现这玩意儿还有点玄学,做一下记录。 1.添加两个master。kudu master有leader和foll…

薪酬调整流程:规范流程并确保公平合理

薪酬调整是企业人力资源管理中不可或缺的一环,它直接关系到员工的切身利益和企业的发展。为了确保薪酬调整的公平性和合理性,制定一套规范的薪酬调整流程至关重要。本文将详细阐述薪酬调整流程的各个环节,以及如何确保流程的合理性和公平性。…

用云手机运营TikTok有什么好处?

在数字化浪潮的推动下,社交媒体平台正重塑商业推广与品牌建设的面貌。TikTok,这款全球热门的短视频应用,已经吸引了亿万用户的瞩目。对于出海电商和品牌推广而言,借助云手机运营TikTok,能够解锁更多潜在可能&#xff0…

【Linux开发 第十二篇】搭建JavaEE环境

搭建开发环境 搭建javaEE环境 搭建javaEE环境 在Linux下开发JavaEE需要安装软件包: 安装jdk 安装步骤: 在opt目录下创建jdk目录通过xftp上床到jdk目录中进入到jdk目录中,解压jdk压缩包在/usr/local下创建java目录将解压完成的jdk文件移动…

时间搜索

时间搜索 vue2antd <a-form-item label"订单开始时间:"><a-range-picker v-model"date" valueFormat"YYYY-MM-DD" change"onChange" /></a-form-item> onChange (date) {if (date.length > 0) {this.queryParam.…

li 与 li 之间有看不见的空白间隔是什么原因引起的?如何解决?

浏览器会把inline内联元素间的空白字符&#xff08;空格、换行、Tab等&#xff09;渲染成一个空格。 为了美观&#xff0c;通常是一个放在一行&#xff0c;这导致换行后产生换行字符&#xff0c;它变成一个空格&#xff0c;占用了一个字符的宽度。 解决办法&#xff1a; &…

【MySQL | 第六篇】数据库三大范式

文章目录 6.数据库设计三大范式6.1第一范式6.2第二范式6.3第三范式6.4反范式设计 6.数据库设计三大范式 6.1第一范式 第一范式&#xff08;1NF&#xff09;&#xff1a;确保每列的原子性(强调的是列的原子性&#xff0c;即列不能够再分成其他几列)。实际上&#xff0c;第一范式…

MATLAB初学者入门(10)—— 粒子群算法

粒子群优化&#xff08;Particle Swarm Optimization, PSO&#xff09;是一种基于群体协作的优化技术&#xff0c;它由社会行为模型&#xff08;如鸟群觅食行为&#xff09;启发而来。PSO 通过模拟一群粒子&#xff08;候选解&#xff09;在解空间中的移动来寻找最优解。每个粒…

react学习(一)之初始化一个react项目

React 是一个用于构建用户界面&#xff08;UI&#xff09;的 JavaScript 库&#xff0c;用户界面由按钮、文本和图像等小单元内容构建而成。React 帮助你把它们组合成可重用、可嵌套的 组件。从 web 端网站到移动端应用&#xff0c;屏幕上的所有内容都可以被分解成组件&#xf…

在React Router 6中使用useRouteLoaderData钩子获取自定义路由信息

在 React Router 6 中怎么像vueRouter一样&#xff0c;可以在配置路由的时候&#xff0c;定义路由的元信息(附加信息)&#xff1f;答案是可以的。稍有些复杂。核心是通过为每个路由定义了一个 loader 函数,用于返回自定义的路由信息&#xff0c;然后通过useRouteLoaderData 钩子…

Java使用百度翻译接口开发app

到网站&#xff1a;百度翻译开放平台下载Java版本的demo 使用demo中的三个文件&#xff0c;main不用 默认返回的result内容是这样的: {"from":"en","to":"zh","trans_result":[{"src":"Sure! Heres a sh…

虚拟机扩容方法

概述 我的虚拟机开始的内存是40G,接下来要扩成60GB 扩容步骤 步骤1 步骤2 步骤3 修改扩容后的磁盘大小&#xff0c;修改后的值只可以比原来的大&#xff0c;修改完成后点击扩展&#xff0c;等待扩展完成 步骤4 虽然外面扩展成功&#xff0c;但是新增的磁盘空间虚拟机内部还…

GHO文件安装到Vmware的两种姿势

1、使用 Ghost11.5.1.2269 将gho转换为vmdk文件(虚拟机硬盘)&#xff0c;Vmware新建虚拟机自定义配置&#xff0c;然后添加已有的虚拟硬盘文件。 注意ghost的版本&#xff0c;如果你是用Ghost11.5备份的gho文件&#xff0c;再用Ghost12把gho文件转换为vmdk&#xff0c;则vmdk文…

Sound Siphon for Mac:音频处理与录制工具

Sound Siphon for Mac是一款专为Mac用户设计的音频处理与录制工具&#xff0c;以其出色的性能、丰富的功能和简便的操作而备受赞誉。 Sound Siphon for Mac v3.6.8激活版下载 该软件支持多种音频格式&#xff0c;包括MP3、WAV、AAC、FLAC等&#xff0c;用户可以轻松导入各种音频…

openwrt 挂载 usb摄像头 video-uvc mjpg-streamer

安装 # 安装vidoe uvc opkg install kmod-video-core kmod-video-uvc# 插入USB摄像头检测支持情况 dmesg|grep usb# 下载camwww # https://sourceforge.net/projects/mjpg-streamer/ # 解压后将 www 文件修改为camwww, 然后将camwww上传到路由器/www/目录下# 安装camwww 实现推…

小程序中Java后台调用getAccessToken接口、msg_sec_check接口检测文本安全、小程序前端访问后端接口的方法

序言:书接上回 小程序中Java后台调用接口(getAccessToken)获取调用凭据,调用接口(msgSecCheck)检测文本内容是否安全–最终版 小程序服务端后台 Java代码编写,框架采用SSM架构搭建 第一步:添加需要的pom.xml依赖配置 <!-- 小程序文本安全检测接口所需的依赖 --&g…