vue+leaflet笔记之地图放大镜

news/2024/11/14 13:40:20/

vue+leaflet笔记之地图放大镜

文章目录

  • vue+leaflet笔记之地图放大镜
    • 开发环境
    • 使用教程
      • 安装依赖库
      • 使用简介
    • 详细源码(Vue3)

本文介绍了Web端使用 Leaflet开发库显示地图放大镜的方法 (底图来源:中科星图),结合 leaflet.magnifyingglass插件可以为Leaflet图层添加“放大镜”效果,能够以不同的缩放比例显示地图的一部分 ,显示效果如下图所示。
在这里插入图片描述


开发环境

Vue开发库:3.2.37 & Leaflet开发库:1.9.3

Leaflet插件:leaflet.magnifyingglass


使用教程

安装依赖库

通过github仓库下载,引入项目中

leaflet.magnifyingglass仓库 https://github.com/bbecquet/Leaflet.MagnifyingGlass

克隆leaflet.magnifyingglass仓库,下载完毕后,进入Leaflet.MagnifyingGlass文件夹,将该目录下的leaflet.magnifyingglass.jsleaflet.magnifyingglass.css引入本地项目中。

# 克隆leaflet.magnifyingglass仓库
git clone https://github.com/bbecquet/Leaflet.MagnifyingGlass.git

使用简介

// 创建地图放大镜底图(请勿使用主地图已在使用的图层对象)
const baseLayer1 = L.tileLayer('https://tiles1.geovisearth.com/base/v1/vec/{z}/{x}/{y}?token=yours_token'); 
const vecLayer = L.layerGroup([baseLayer1])
// 创建地图放大镜图层,并添加到地图中
let magnifyingGlass = L.magnifyingGlass({// 主地图缩放和放大镜之间的缩放级别偏移zoomOffset: 3,layers: [vecLayer]
}).addTo(map);

以下是核心的参数配置项(更新时间:2023年5月13日)

参数类型默认描述
radiusInteger100放大镜的半径(以像素为单位)
zoomOffsetInteger3主地图缩放和放大镜之间的缩放级别偏移
fixedZoomInteger-1放大镜图层显示固定某一层级,不随地图比例尺变化而变化
fixedPositionBooleanfalse如果为true放大镜将停留在地图上的相同位置,而不是跟随鼠标光标移动
latLngLatLng[0, 0]放大镜的初始位置,既在主地图上,又作为放大视图的中心。
layersILayer[]要在放大视图中显示的图层集(请勿使用主地图已在使用的图层对象)

详细源码(Vue3)

<template><div class="app-contain"><!-- leaflet 地图容器 --><div id="myMap"></div></div>
</template><script setup>
// 引入样式
import L from 'leaflet';
import 'leaflet/dist/leaflet.css'
// 引入地图放大镜
import './store/leaflet.magnifyingglass.css'
import './store/leaflet.magnifyingglass.js'import {onMounted} from 'vue'const initMap = () => {// 影像地图const sourceMap = L.tileLayer('https://tiles1.geovisearth.com/base/v1/img/{z}/{x}/{y}?token=yours_token');const layers = L.layerGroup([sourceMap])let map = L.map('myMap', {  //需绑定地图容器div的idattributionControl: false,zoomControl: true, // 显示缩放控件// 最小显示等级minZoom: 1,// 最大显示等级maxZoom: 18,// crs: L.CRS.EPSG3857,//设置坐标系类型  EPSG3857伪墨卡托投影scrollWheelZoom: true, //默认开启鼠标滚轮缩放// 限制显示地理范围maxBounds: L.latLngBounds(L.latLng(-90, -180), L.latLng(90, 180)),// 限制显示地理范围layers: [layers] // 图层}).setView([28.907459, 120.003576], 6)// 比例尺L.control.scale({maxWidth: 240, metric: true, imperial: false, position: 'bottomleft'}).addTo(map);/** 地图放大镜 */const baseLayer1 = L.tileLayer('https://tiles1.geovisearth.com/base/v1/vec/{z}/{x}/{y}?token=yours_token');const vecLayer = L.layerGroup([baseLayer1])// 创建地图放大镜图层,并添加到地图中let magnifyingGlass = L.magnifyingGlass({// 主地图缩放和放大镜之间的缩放级别偏移zoomOffset: 3,layers: [vecLayer]}).addTo(map);
}onMounted(() => {initMap()
})
</script><style scoped>
#myMap {width: 96vw;height: 96vh;
}
</style>

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

相关文章

2021年煤气新版试题及煤气免费试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2021年煤气新版试题及煤气免费试题&#xff0c;包含煤气新版试题答案和解析及煤气免费试题练习。由安全生产模拟考试一点通公众号结合国家煤气考试最新大纲及煤气考试真题汇总&#xff0c;有助于煤气证考试考前练习。…

2021年煤气最新解析及煤气考试试卷

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通&#xff1a;煤气最新解析根据新煤气考试大纲要求&#xff0c;安全生产模拟考试一点通将煤气模拟考试试题进行汇编&#xff0c;组成一套煤气全真模拟考试试题&#xff0c;学员可通过煤气考试试…

如何根据煤气成分分析来调整煤气发生炉操作?

如何才能根据煤气成分分析数据调整煤气发生炉的操作呢&#xff1f; 武汉天禹智控&#xff0c;煤制气行业首选&#xff0c;10年煤气分析行业研制经验&#xff0c;为您详细解答怎样根据煤气成分分析数据来操作煤气发生炉。 不一定每个数据都作为调整操作的依据&#xff0c;而是…

深入理解深度学习——BERT(Bidirectional Encoder Representations from Transformers):输入表示

分类目录&#xff1a;《深入理解深度学习》总目录 相关文章&#xff1a; BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;&#xff1a;基础知识 BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09…

5.5.2 IPv6数据报格式

5.5.2 IPv6数据报格式 首先我们来回忆一下IPv4数据报首部格式&#xff08;5.2.3 IP数据报&#xff08;一&#xff09;IP数据报的格式&#xff09;&#xff0c;包括20个字节的固定部分和长度可变的选项部分&#xff0c;如图 红色方框标注的是在IPv6中会消失的字段&#xff0c;椭…

面试题:mybatis中# 和 $ 的区别

面试题&#xff1a;mybatis中# 和 $ 的区别 一、主要区别如下&#xff1a; 1、#{}可以理解为预处理&#xff0c;而${}是直接替换。 #传入的参数在SQL中显示为字符串&#xff0c;会对自动传入的数据加上双引号。 $传入的参数在SQL中直接显示为传入的值 2、#{}试用于所有类型…

分片和一致性哈希

在设计大规模分布式系统时&#xff0c;你可能会遇到两个概念——分片&#xff08;sharding&#xff09;和一致性哈希&#xff08;consistent hashing&#xff09;。虽然我在网上找到了很多关于这些术语的解释&#xff0c;但它们让我感到有些困惑。我觉得分片和一致性哈希本质上…

兄弟j220怎么清零_兄弟打印机MFC_J220墨水回收盒满,该如何清零,望大神指教。...

展开全部 兄弟打e69da5e887aa62616964757a686964616f31333365646238印机MFC_J220墨水回收盒满清零方法&#xff1a; 1、首先检查一下打印机当前是否已经被设置为“暂停打印”&#xff0c;如果是的话&#xff0c;无论怎样向打印机发送打印命令&#xff0c;打印机肯定不会接受打印…