leaflet 的基础使用

目录

一、创建dom节点

二、创建地图

三、添加底图(天地图),在地图创建完成后添加底图


本章主要讲述leaflet在vue中的使用:

leaflet 详情总目录:传送

一、创建dom节点

<div class="map" id="map_container"></div>

这里要注意,添加的节点必须设置宽高,否则不显示

二、创建地图

data() {return {map: null,//地图实例clickTimers: [],//存储区分点击地图双击和单击的定时器isShowUavBaseLayer: false, //是否显示卫星图层baseMapLayerGroup: null, //地图图层组tdtMapKey: '', //天地图key,需要到天地图申请}},methods: {initMap() {let that = thisthat.map = L.map('map_container', {crs: L.CRS.EPSG4326, //坐标系,在未知坐标系情况下,不要修改这里center: [29.4785541, 119.55847441], //地图中心maxNativeZoom: 16, //地图瓦片放大最大级别minNativeZoom: 5, //地图瓦片缩小最小级别maxZoom: 21, //地图放大最大级别minZoom: 5, //地图缩小最小级别zoom: 10, //地图当前级别attributionControl: false, //版本控件zoomControl: false, //地图缩放控件closePopupOnClick: true, //点击地图关闭popup弹窗trackResize: true, //地图根据浏览器更新boxZoom: true, //是否可以在按住shift拖地鼠标把地图缩放到指定的矩形区域doubleClickZoom: true, //是否双击放大地图dragging: true, //地图是否可以拖拽keyboard: true, //键盘是否可以操作地图keyboardPanDelta: 80, //键盘方向键按下时,地图平移像素scrollWheelZoom: true, //鼠标滚轮操作地图缩放wheelDebounceTime: 40, //鼠标滚轮触发限制,不得超过40毫秒一次wheelPxPerZoomLevel: 60, //鼠标滚动一次,地图滚动像素})//地图单击事件that.map.on('click', (e) => {//区分单击和双击,在单击添加延时,如果在300毫秒中触发了双击事件,则清除定时器,不触发单击事件let timer = window.setTimeout(() => {console.log(e.latlng, 'click')}, 300)that.clickTimers.push(timer)})//地图双击事件that.map.on('dblclick', (e) => {//判断定时器是否有数据,有则清除,只触发双击事件if (that.clickTimers.length > 0) {that.clickTimers.forEach((timer) => {window.clearTimeout(timer)})that.clickTimers = []}console.log(e.latlng, 'dblclick')})},},async mounted() {await this.$nextTick()this.initMap()},

 

 创建的新地图是没有底图的,需要我们自己添加底图,根据需求添加不同的底图,我这里先以天地图为例,后期会把不同类型的底图添加方式统一写一下

三、添加底图(天地图),在地图创建完成后添加底图

//添加底图图层addSateLayer() {let layerType = this.isShowUavBaseLayer ? 'img' : 'vec'let labelType = this.isShowUavBaseLayer ? 'cia' : 'cva'if (!this.baseMapLayerGroup) {this.baseMapLayerGroup = new L.LayerGroup()this.baseMapLayerGroup.addTo(this.map)} else {this.baseMapLayerGroup.clearLayers()}var wMap = L.tileLayer(`https://t{s}.tianditu.gov.cn/DataServer?T=${layerType}_c&x={x}&y={y}&l={z}&tk=${this.tdtMapKey}`,{minZoom: 5,maxZoom: 21,maxNativeZoom: 17,minNativeZoom: 5,subdomains: [0, 1, 2, 3, 4, 5, 6, 7],zoomOffset: 1,tileSize: 256,})var lMap = L.tileLayer(`https://t{s}.tianditu.gov.cn/DataServer?T=${labelType}_c&x={x}&y={y}&l={z}&tk=${this.tdtMapKey}`,{subdomains: [0, 1, 2, 3, 4, 5, 6, 7],transparent: true,zIndex: 3,zoomOffset: 1,minZoom: 5,maxZoom: 21,tileSize: 256,})this.baseMapLayerGroup.addLayer(wMap)this.baseMapLayerGroup.addLayer(lMap)},//切换地图handleChangeBaseLayer() {this.isShowUavBaseLayer = !this.isShowUavBaseLayerthis.addSateLayer()},

 效果如下:1.普通底图,2.卫星影像底图

注:这里用到天地图的key,需要到天地图官网申请

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

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

相关文章

C++分治思想

分治思想的定义 分治思想是C中很重要的一个思想&#xff0c;它的主旨是“将大的问题化作小的问题&#xff0c;将小问题在化作更小的问题”。就是这样一个看起来十分简单的思想&#xff0c;却涵盖了许许多多的算法&#xff0c;如递归&#xff0c;递推&#xff0c;贪心等。 分治…

ubuntu的用户使用

ubuntu系统中的常规用户登录方式 在系统root用户是无法直接登录的,因为root用户的权限过大所以其安全性比较差 在登录系统时一般使用在安装系统时建立的普通用户登录 如果需要超级用户权限: Ubuntu用户密码破解 在系统安装完成后默认grub启动等待时间为0&#xff0c;建议改…

浏览器拨测:将网站护航的阵地再前推一米

作者&#xff1a;泉思 “从你在地址栏里敲下回车开始到你在网页上看到内容中间经过了哪些步骤”&#xff0c; 这是一个非常常见的互联网公司的面试题。想必很多开发者对于这个问题可以给出一个非常完整的回答&#xff0c;但是对于用户来说&#xff0c;在网页上看到内容仅仅是服…

Modern Effective C++ 条款二十七:熟悉通用引用重载的替代方法

item26中说明对使用通用引用形参的函数&#xff0c;无论是独立函数还是成员函数&#xff0c;进行重载都会导致一系列问题。但是也提供了一些示例&#xff0c;如果能够按照我们期望的方式运行&#xff0c;重载可能也是有用的。这个条款探讨了几种通过避免在通用引用上重载的设计…

【RL Application】语义分割中的强化学习方法

&#x1f4e2;本篇文章是博主强化学习&#xff08;RL&#xff09;领域学习时&#xff0c;用于个人学习、研究或者欣赏使用&#xff0c;并基于博主对相关等领域的一些理解而记录的学习摘录和笔记&#xff0c;若有不当和侵权之处&#xff0c;指出后将会立即改正&#xff0c;还望谅…

【C++】优先队列(Priority Queue)全知道

亲爱的读者朋友们&#x1f603;&#xff0c;此文开启知识盛宴与思想碰撞&#x1f389;。 快来参与讨论&#x1f4ac;&#xff0c;点赞&#x1f44d;、收藏⭐、分享&#x1f4e4;&#xff0c;共创活力社区。 目录 一、前言 二、优先队列&#xff08;Priority Queue&#xff09…

【SQL】实战--组合两个表

题目描述 表: Person ---------------------- | 列名 | 类型 | ---------------------- | PersonId | int | | FirstName | varchar | | LastName | varchar | ---------------------- personId 是该表的主键&#xff08;具有唯一值的列&#xff09;…

STL:相同Size大小的vector和list哪个占用空间多?

在C中&#xff0c;vector和list是两种不同的序列容器。vector底层是连续的内存&#xff0c;而list是非连续的&#xff0c;分散存储的。因此&#xff0c;vector占用的空间更多&#xff0c;因为它需要为存储的元素分配连续的内存空间。 具体占用多少空间&#xff0c;取决于它们分…

《Serverless 架构:引领未来软件开发的新趋势》

一、引言 随着云计算技术的不断发展&#xff0c;软件开发模式也在不断演进。Serverless 架构作为一种新兴的云计算架构模式&#xff0c;正在逐渐改变着软件开发的方式和流程。本文将深入探讨 Serverless 架构的概念、特点、应用场景以及未来发展趋势。 二、Serverless 架构概述…

Java的关键字和保留字

理解什么是关键字&#xff1f; Java赋予了某些单词特殊意义&#xff0c;就不能自己在代码中起同名一样的&#xff0c;否则提示错误 【在Java中关键字都是小写的&#xff0c;并不是所有的小写字母都是关键字&#xff0c;一般在IDEA中显示高亮橘黄色】 理解什么是保留字&#xf…

三十二:HTTP 协议的基本认证

在 Web 开发中&#xff0c;HTTP 协议提供了一种简单的方式来进行身份验证&#xff0c;即 基本认证&#xff08;Basic Authentication&#xff09;。这种认证方式广泛应用于需要保护的资源或 API 接口&#xff0c;它通过在 HTTP 请求头中传递用户名和密码来验证用户身份。虽然基…

GPT vs Claude到底如何选?

美国当地时间6月20日&#xff0c;OpenAI的“劲敌”Anthropic公司发布了最新模型Claude 3.5 Sonnet。据Anthropic介绍&#xff0c;该模型是Claude 3.5系列模型中的首个版本&#xff0c;也是Anthropic迄今为止发布的“最强大、最智能”的模型。它不仅在性能上超越了竞争对手和自家…

Ubuntu 22.04 LTS vs Ubuntu 24.04 LTS:深度剖析,哪个版本更胜一筹?

在开源操作系统领域&#xff0c;Ubuntu一直以其稳定、易用和丰富的功能而受到广泛好评。随着Ubuntu 24的发布&#xff0c;许多用户开始关注这两个版本之间的差异&#xff0c;并考虑是否应该升级到最新版本。鼎峰新匯Benson将对比Ubuntu 22和Ubuntu 24&#xff0c;以帮助用户做出…

Ubuntu 22.04 离线安装软件包

在使用最小化安装时&#xff0c;默认是不带有vim 或者nano编辑器的&#xff0c;如果你的环境不能上外网就需要离线安装。 首先你需要先找一台可以上网的ubuntu系统&#xff08;虚拟机搭建也行&#xff09;&#xff0c;下载所有的依赖包&#xff0c;然后上传到需要安装的服务器…

k8s 1.28 二进制安装与部署

第一步 &#xff1a;配置Linux服务器 #借助梯子工具 192.168.196.100 1C8G kube-apiserver、kube-controller-manager、kube-scheduler、etcd、kubectl、haproxy、keepalived 192.168.196.101 1C8G kube-apiserver、kube-controller-manager、kube-scheduler、etcd、kubectl、…

unity中:Unity 中异步与协程结合实现线程阻塞的http数据请求

在 Unity 开发中&#xff0c;将协程与 C# 的 async/await 机制结合&#xff0c;可以显著提高代码的可读性与维护性&#xff0c;并且支持返回值。 异步与协程结合在数据请求中的优势 提高代码可读性&#xff1a; 与传统协程相比&#xff0c; async/await 更接近同步逻辑&#xf…

详解QtPDF之 QPdfLink

文章目录 前言QPdfLink 类介绍QPdfLink 的基本功能 QPdfLink 的成员函数1. QPdfLink()2. boundingRect() const3. target() const4. setTarget(const QUrl &target)5. isValid() const 使用 QPdfLink 的示例示例代码代码说明&#xff1a; 总结 前言 在处理 PDF 文档时&…

OGRE 3D----5. OGRE和QML事件交互

在现代图形应用程序开发中,OGRE(Object-Oriented Graphics Rendering Engine)作为一个高性能的3D渲染引擎,广泛应用于游戏开发、虚拟现实和仿真等领域。而QML(Qt Modeling Language)则是Qt框架中的一种声明式语言,专注于设计用户界面。将OGRE与QML结合,可以充分利用OGR…

mysql系列2—InnoDB数据存储方式

背景 本文将深入探讨InnoDB的底层存储机制&#xff0c;包括行格式、页结构、页目录以及表空间等核心概念。通过全面了解这些基础概念&#xff0c;有助于把握MySQL的存储架构&#xff0c;也为后续深入讨论MySQL的索引原理和查询优化策略奠定了基础。 1.行格式 mysql中数据以行…

matlab2024a安装

1.开始安装 2.点击安装 3.选择安装密钥 4.接受条款 5.安装密钥 21471-07182-41807-00726-32378-34241-61866-60308-44209-03650-51035-48216-24734-36781-57695-35731-64525-44540-57877-31100-06573-50736-60034-42697-39512-63953 6 7.选择许可证文件 8.找许可证文件 9.选…