Leaflet【二】图层绘制——UI图层【点线面】 矢量图层【img、svg】

layer图层

在leaflet当中使用图层比OL当中简便一点,我们创建的layer图层可以直接通过 addTo 方法加到地图上,不需要通过layer、source再去做一些区分,

图标 Icon

创建Marker时提供的一个Icon 详细配置–>go

  // 导入一张图片作为图标
  import Money from '@/assets/image/money.png';
  const myIcon = L.icon({
    iconUrl: Money,
    iconSize: [38, 38], // 尺寸(px)
    iconAnchor: [0, 0], // 相对于其左上角的位置
    popupAnchor: [0, 0], // 弹出窗口(popup)的坐标
    shadowUrl: '', // 图标阴影图像
    shadowSize: [40, 40], // 阴影图像的大小(px)
    shadowAnchor: [0, 0] // 阴影图像相对于其左上角的位置
  });

点 marker

通过marker创建的点就是一个layer,可以直接通过addTo加到地图上
移步 --> Marker 配置

// 构造函数
L.marker([经纬度],{options 配置对象})
// 简单marker对象
const marker = L.marker([31.5, 120]).addTo(map);
// 使用icon
const marker = L.marker([31.5, 120], {
  icon: myIcon, // 标记使用的图标
  title: 'marker1', // 相当于div的title属性 鼠标移入后的提示
  alt: 'icon 丢失了?', // 相当于img标签的alt
  zIndexOffset: 1000, // 高度
  opacity: 0.5, // 透明度
  draggable: true // 是否可拖拽
}).addTo(map);

在这里插入图片描述

路径 Path

一个抽象的类,包含了矢量覆盖物 (Polygon(多边形), Polyline(折线), Circle(圆形))之间共享的选项和常量。主要是他的一些属性(options)使用 path 抽象类的属性

选项类型默认值说明
strokeBooleantrue是否沿路径绘制边框。把它设置为false ,可以禁用多边形或圆形的边框。
colorString‘#3388ff’ Stroke(描边)颜色
weightNumber3Stroke(描边)宽度,单位:像素
opacityNumber1.0Stroke(描边)的不透明度
lineCapString‘round’定义描边 结束时使用的形状 的字符串。
lineJoinString‘round’定义在描边 转角处使用的形状 的字符串。
dashArrayStringnull一个定义描边的点画线的 图案范式的字符串。 在一些旧的浏览器中,对 Canvas-powered 图层不起作用。
dashOffsetStringnull一个字符串,它定义了进入 dash 范式的距离,以 dash 开始。 在一些旧的浏览器中,对 Canvas-powered 图层不起作用。
fillBooleandepends是否对路径进行颜色填充。设置为 false 可以禁止对多边形或圆形的填充。
fillColorString*填充颜色。默认为 color 选项的值。
fillOpacityNumber0.2填充的不透明度。
fillRuleString‘evenodd’一个字符串,定义 形状的内部区域 是如何被确定的。
bubblingMouseEventsBooleantrue当为 true时,这个路径上的鼠标事件将在地图上触发相同的事件 (除非使用 L.DomEvent.stopPropagation )。
rendererRenderer在这个路径上使用这个特定的 Renderer(渲染器) 实例。 优先于地图的 default renderer(默认渲染器)。
classNameStringnull在一个元素上设置的自定义类名。仅适用于 SVG 渲染器。

折线Polyline & 多边形Polygon & 矩形Rectangle

折线和多边形本质上是一样的,只是看第一个点和最后一个点会不会自动连接起来构成的是一条线段还是一个平面(多边形)

继承关系: Path -> Polyline -> Polygon -> Rectangle

// 多边形在入参的数组当中可以入多维数组,会挨个解析,下面就相当于两个三角形
const polygonPos = [
  [[45.51, -122.68],
    [37.77, -122.43],
    [34.04, -118.2]],
  [[40.78, -73.91],
    [41.83, -87.62],
    [32.76, -96.72]]
];
// 这里的{} 属性都是继承于Path对象的
const polygon = L.polygon(polygonPos,{}).addTo(map);

// 折线 polyline和polygon基本上是一样的,这里的入参polyLinePos和上面一样,我就不贴这个数据的代码了
const polyline = L.polyline(polyLinePos, {color: 'red'}).addTo(map);

// 矩形
const bounds = [[24.5, 125.7], [26.1, 126.8]];
L.rectangle(bounds, {color: '#ff7800', weight: 1}).addTo(map);
map.fitBounds(bounds);   //地图定位,入参是这个矩形所在的位置,那么也就是相当于定位到矩形

在这里插入图片描述

圆形标记CircleMarker & 圆 Circle

区别在于CircleMarker 的半径是以像素为单位,而Circle的半径是米

继承关系: Path -> CircleMarker -> Circle

const circle = L.circle([21, 120], {
  color: 'red',
  fillColor: '#f03',
  fillOpacity: 0.5,
  radius: 500000
}).addTo(map);
const circleMarker = L.circleMarker([26, 125], {
  radius: 10,
  fillColor: '#ff7800',
  color: '#000',
  weight: 1,
  opacity: 1,
  fillOpacity: 0.8
}).addTo(map);

在这里插入图片描述

弹出框 popup

用于在地图的某些位置打开弹出窗口。使用 Map.openPopup 打开弹出窗口,同时确保一次只打开一个弹出窗口。弹出窗option 配置

// 提示弹出框
const popup = L.popup({}).setLatLng([20, 125]).setContent('这是弹窗.').openOn(map);
// 也可以给点线面加上(当单击点之后弹出)
marker.bindPopup('<b>Hello world!</b><br>弹框.');

工具提示 Tooltip

用于在地图图层顶部显示小文本。

marker.bindTooltip('my tooltip text').openTooltip();

在这里插入图片描述

图片图层 ImageOverlay

用于在地图的特定边界上加载和显示单个图像

  for (let i = 0; i < 3; i++) {
    for (let j = 0; j < 3; j++) {
      const bounds = [[(j - 1) * 5, (i - 1) * 5], [5 * j, 5 * i]];
      L.imageOverlay(`https://picsum.photos/300/300?/${i}/${j}`, bounds).addTo(map);
    }
  }
选项类型默认值说明
opacityNumber1.0图像图层的不透明度。
altString‘’alt 属性的文本内容(对于可访问性很有用)。
interactiveBooleanfalse如果为 true,当单击或悬停时,图像图层将发出 鼠标事件。
crossOriginBoolean\Stringfalse是否允许跨域
errorOverlayUrlString‘’图像图层的 URL,以代替加载失败的图层。
zIndexNumber1图层的显式 zIndex。
classNameString‘’为图像指定一个自定义类名。默认是空的。

在这里插入图片描述

矢量图层 SvgOverlay

用于在地图的特定边界上加载、显示和提供对 SVG 文件的 DOM 访问。 扩展自 ImageOverlay。

  var svgElement = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
  svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');
  svgElement.setAttribute('viewBox', '0 0 200 200');
  svgElement.innerHTML = '<rect width="200" height="200"/><rect x="75" y="23" width="50" height="50" style="fill:red"/><rect x="75" y="123" width="50" height="50" style="fill:#0013ff"/>';
  var svgElementBounds = [[32, -130], [13, -100]];
  L.svgOverlay(svgElement, svgElementBounds).addTo(map);

在这里插入图片描述

视频图层 VideoOverlay

用于在地图的特定范围内加载和显示视频播放器。 扩展 ImageOverlay。

const videoUrl = 'https://www.mapbox.com/bites/00188/patricia_nasa.webm';
const videoBounds = [[32, -130], [13, -100]];
L.videoOverlay(videoUrl, videoBounds).addTo(map);

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

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

相关文章

python放烟花的代码

以下是一个简单的Python烟花大会的代码示例。这个代码使用Python的turtle模块来绘制烟花&#xff0c;并使用随机函数来生成烟花的路径和颜色。 python import turtle import random # 设置画布和画笔 canvas turtle.Screen() canvas.bgcolor("black") pen turtle.…

光伏电站设备数据采集

随着全球对可再生能源的关注度日益提升&#xff0c;光伏电站作为绿色能源的重要组成部分&#xff0c;其运营效率和稳定性显得尤为重要。在光伏电站的日常管理中&#xff0c;设备数据采集是一项至关重要的工作&#xff0c;它直接关系到电站的运行状态、故障预警以及能源产出的优…

人工智能创新领衔,Android系统如虎添翼:2024 Google I/O 大会深度解析

人工智能创新领衔&#xff0c;Android系统如虎添翼&#xff1a;2024 Google I/O 大会深度解析 2024年5月14日举行的Google I/O大会&#xff0c;犹如一场精彩的科技盛宴&#xff0c;吸引了全球的目光。大会上&#xff0c;谷歌发布了一系列重磅产品和技术更新&#xff0c;展现了…

揭秘!国产电路仿真软件新星闪耀,让电路设计更智能!

在数字化时代&#xff0c;电路设计与仿真软件的重要性日益凸显。随着科技的飞速发展&#xff0c;国产电路仿真软件也逐渐崭露头角&#xff0c;成为行业内的佼佼者。今天&#xff0c;我们就来揭秘这些国产电路仿真软件的新星&#xff0c;看看它们是如何让电路设计变得更加智能、…

上位机图像处理和嵌入式模块部署(树莓派4b的低成本方案)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面我们说过树莓派4b的替代版本和提高版本&#xff0c;其实还有一种方案&#xff0c;那就是树莓派4b的超低版本方案。国内开发板soc这块&#xff…

如何看固态硬盘是否支持trim功能?固态硬盘开启trim数据还能恢复吗

随着科技的飞速发展&#xff0c;固态硬盘&#xff08;SSD&#xff09;已成为电脑存储的主流选择。相较于传统的机械硬盘&#xff0c;固态硬盘以其高速读写和优秀的耐用性赢得了广泛好评。而在固态硬盘的众多功能中&#xff0c;TRIM功能尤为关键&#xff0c;它能有效提升固态硬盘…

机器人工具箱学习(三)

一、动力学方程 机器人的动力学公式描述如下&#xff1a; 式中&#xff0c; τ \boldsymbol{\tau} τ表示关节驱动力矩矢量&#xff1b; q , q ˙ , q \boldsymbol{q} ,\; \dot{\boldsymbol { q }} ,\; \ddot{\boldsymbol { q }} q,q˙​,q​分别为广义的关节位置、速度和加速…

Python代码:十二、格式化输出(2)

1、描述 牛牛、牛妹和牛可乐都是Nowcoder的用户&#xff0c;某天Nowcoder的管理员希望将他们的用户名以某种格式进行显示&#xff0c; 现在给定他们三个当中的某一个名字name&#xff0c;请分别按全小写、全大写和首字母大写的方式对name进行格式化输出&#xff08;注&#x…

关于毫、微、纳、皮

千分之一称为“毫”(m)&#xff0c;即10^(-3) “毫”的千分之一称为“微”( μ)&#xff0c;即10^(-6) “微”的千分之一称为“纳”( n)&#xff0c;即10^(-9) “纳”的千分之一称为“皮”( p)&#xff0c;即10^(-12) 另外&#xff1a; 千倍为“千”(K) 千倍的千倍称为“…

Echarts仪表盘实现半球带圆点

效果图&#xff1a; 代码如下&#xff1a; <template><div><!-- 图表 --><div class"echart-box" id"main"></div></div> </template> <script setup> import * as echarts from "echarts"; …

CSP认证刷题笔记(3)最大矩形(13年CSP认证第三题)

文章目录 题目描述基本思路求解代码 题目描述 在横轴上放了n个相邻的矩形&#xff0c;每个矩形的宽度是1&#xff0c;而第i&#xff08;1≤i≤n&#xff09;个矩形的高度是 hi。这n个矩形构成了一个直方图。例如&#xff0c;下图中六个矩形的高度就分别是3,1,6,5,2,3。 请找出…

【面试干货】一个数组的倒序

【面试干货】一个数组的倒序 1、实现思想2、代码实现 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 1、实现思想 创建一个新的数组&#xff0c;然后将原数组的元素按相反的顺序复制到新数组中。 2、代码实现 package csdn;public class…

Go语言不再难!跟随ChatGPT轻松攻克编程难关

开发人员&#xff08;包括我在内&#xff09;通常偏好边学习边实践的方式。这不仅仅是我与LLM协作的核心准则之一&#xff0c;也是最关键的准则&#xff1a;因为你是在任务导向的学习过程中积累知识&#xff0c;这种学习方式不是预先的——它基于实时的、可感知的情境。 当资深…

管道光电液位传感器有哪些特点

管道光电液位传感器具有多项独特特点&#xff0c;使其在水管缺水检测领域广受欢迎。管道光电液位传感器采用光学感应原理&#xff0c;利用光线在水与空气中的折射率不同来感知水位的变化。这种原理使得传感器无需任何机械运动&#xff0c;大大延长了其寿命&#xff0c;并且不易…

连绕下线和掏把下线

这里的连绕下线和掏把下线讲的是线不剪断的接法&#xff01; 这里还是以一路串联为例子&#xff0c;一相4组线圈 &#xff0c;4组线圈就需要3根套管&#xff0c;3相就需要9根套管 如下图 绕这一相4组线圈的时候&#xff0c;就已经放好一定大小的3根套管&#xff01; 这个只试…

计算机网络学习记录 数据链路层 Day3 (上)

计算机网络学习记录 数据链路层 Day3&#xff08;上&#xff09; 你好,我是Qiuner. 为记录自己编程学习过程和帮助别人少走弯路而写博客 这是我的 github https://github.com/Qiuner gitee https://gitee.com/Qiuner 如果本篇文章帮到了你 不妨点个赞吧~ 我会很高兴的 &#x1…

【手势识别-UISwipeGestureRecognizer轻扫 Objective-C语言】

一、接下来,我们来说这个,轻扫的手势, 1.轻扫,比如说,就是从右往左滑一下,从左往右滑一下,这个叫轻扫,不是清洁的清啊,是轻轻的轻,不是那个清扫垃圾的清啊,好,这是轻扫啊,swipe, 好,然后呢,在这个里边呢,首先,3步,也是一样的, 1)创建手势对象 2)为哪一…

香港身份|香港优才计划2024申请条件是什么?一文梳理流程、打分、政策、续签指南!

香港优才计划2024申请条件是什么&#xff1f;一文梳理流程、打分、政策、续签指南&#xff01; 一个香港身份可以为申请人家庭带来教育、税务、医疗、通行自由等一系列优势。但申请香港优才并不轻松&#xff0c;因此总结了过来人经验分享这篇攻略&#xff0c;讲讲香港优才申请…

基于DEXPI标准的xml转成svg图片的测试

通过对java代码的一顿反编译&#xff0c;这个功能逐渐实现了。也打了日志&#xff0c;通过编码实现了svg的视图的裁剪大小。选择xml文件然后选择文件夹&#xff0c;程序自动进行转换&#xff0c;最后生成svg文件。 最后的xml转换后的成品如下图&#xff1a; 通过与达美盛的工具…

PWM 什么是PWM?

1. 什么是PWM&#xff1f; PWM是Pulse Width Modulation的缩写&#xff0c;中文是脉冲宽度调制。 是利用微处理器的数字输出来对模拟电路进行控制的一种技术。 2. 面积等效原理 2.1. 什么是面积等效原理&#xff1f; 冲量相等而形状不同的窄脉冲施加在惯性环节上时&#xf…