1. 地图控件

本篇教程主要介绍以下地图控件:

  • 视图跳转控件

  • 放大缩小控件

  • 全屏控件

图片

 实现步骤

1. 初始化地图

上一篇已经介绍了,这一篇直接跳过该步骤。

2. 视图跳转控件

/* 视图跳转控件 */const ZoomToExtent = new ol.control.ZoomToExtent({  extent: [110, 30, 160, 30]});
map.addControl(ZoomToExtent);

3. 放大缩小控件

/* 放大缩小控件 */const zoomslider = new ol.control.ZoomSlider();map.addControl(zoomslider);

图片

4. 全屏控件

//全屏控件 const fullScreen = new ol.control.FullScreen(); map.addControl(fullScreen) 

图片

代码示例:

/* 视图跳转控件 */ const ZoomToExtent = new ol.control.ZoomToExtent({   extent: [110, 30, 160, 30], }) map.addControl(ZoomToExtent) /* 放大缩小控件 */ const zoomslider = new ol.control.ZoomSlider(); map.addControl(zoomslider) //全屏控件 const fullScreen = new ol.control.FullScreen(); map.addControl(fullScreen) 

以上我们实现视图跳转、放大缩小和全屏控制三个控件,openlayers中还有很多控件,本篇主要介绍到这里,接下来我们学习一下矢量图形绘制。

2.矢量图形绘制

2.1绘图步骤

1、通过几何信息和样式信息构建要素

2、将要素添加到 矢量数据源

3、将矢量数据源添加到 矢量图层

4、将 矢量图层 添加到地图容器

绘制步骤还是遵循下图逻辑来进行

图片

2.2代码和实现步骤

首先实现地图初始化:

导入ol依赖——设置地图容器的挂载点——初始化openlayers地图——点要素绘制

①.绘制点要素

通过样式信息和几何信息构建点要素​​​​​​​

// 通过样式信息和几何信息构建点要素const point = new ol.Feature({  geometry: new ol.geom.Point([114.30, 30.50])});
let style = new ol.style.Style({  // image属性设置点要素的样式  image: new ol.style.Circle({    // radius设置点的半径 单位degree    radius: 10,    fill: new ol.style.Fill({      color: "#ff2d51"    })  })});
point.setStyle(style);

②. 将要素添加到矢量数据源​​​​​​​

let source = new ol.source.Vector({  features: [point]});

③.将矢量数据源添加到矢量图层​​​​​​​

let layer = new ol.layer.Vector({  source: source});

④. 添加矢量图层到地图容器

map.addLayer(layer)

呈现效果:

图片

⑤. 我们再给点要素设置描边:​​​​​​​

stroke: new ol.style.Stroke({  width: 2,  color: "#333"})

图片

代码示例:

​​​​​​​

/* 1、构建要素 */ var point = new ol.Feature({   geometry: new ol.geom.Point([114.30, 30.50]) }) let style = new ol.style.Style({   image: new ol.style.Circle({     radius: 10,     fill: new ol.style.Fill({       color: "#ff2d51"     }),     stroke: new ol.style.Stroke({       color: "#333",       width: 2     })   }) }) point.setStyle(style); /* 2、将要素添加到矢量数据源 */ const source = new ol.source.Vector({         features: [point] })   /* 3、将矢量数据源添加到矢量图层 */ const layer = new ol.layer.Vector({         source })   /* 4、将矢量图层添加到地图容器 */ map.addLayer(layer) 

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

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

相关文章

A#语言详解

A#语言详解:连接Ada与.NET的安全编程语言一、引言:A#的定义与起源A#(A Sharp)是一种基于.NET框架的编程语言,其设计目标是将Ada语言的安全性、可靠性与.NET生态系统的跨平台能力、组件化特性相结合。它由美国程序员Mic…

2025华数杯比赛还未完全结束!数模论文可以发表期刊会议

2025华数杯比赛还未完全结束! 数模论文可以发表期刊会议数学建模论文转化为可发表的期刊/会议论文,可以在保持实验数据和结果不变的前提下,对论文结构、表述方式和学术规范进行系统性调整,然后进行投稿。 这不仅能让你的研究成果被…

SSH远程连接TRAE时显示权限被拒绝检查方案

1. 检查并修复SSH服务端配置(Ubuntu端) # 编辑SSH配置文件 sudo nano /etc/ssh/sshd_config# 确保以下配置正确: PasswordAuthentication yes # 启用密码认证 PubkeyAuthentication yes # 启用密钥认证 PermitRootLogin yes …

浙大高飞团队新作:提出层级式探索框架,让「地空双模」机器人自主决策“飞”或“走”

导读 在面对复杂未知环境的自主探索任务中,如何在有限的能源与时间条件下实现高效、全面的场景感知,一直是机器人研究中的重要难题。近期,浙大高飞老师团队一项关于“地空双模机器人”的研究给出了新答案。 相比传统单一形态的机器人&#xf…

驱动电路设计

一、理论基础1.1定义驱动电路时位于控制电路和负载(主)电路之间,用来对控制电路的信号进行放大的中间电路。控制电路----(控制信号)--->驱动电路----(驱动信号)--->负载电路↑提供足够的电…

RAG (Retrieval-Augmented Generation) 原理详解与实例

核心概念:什么是 RAG? 想象一下,你是一位专家,需要回答一个复杂的问题。你不会凭空编造答案,而是会: 检索 (Retrieval):先去查阅相关的书籍、论文、报告或数据库,找到最相关的信息片段。 理解与整合 (Comprehension & Integration):阅读这些信息,理解其核心内容。…

SOMGAN:利用自组织映射提高生成对抗网络的模式探索能力

论文信息 论文题目:Improving mode exploring capability ofgenerative adversarial nets by self-organizing map(利用自组织映射提高生成对抗网络的模式探索能力) 期刊:Neurocomputing 摘要:生成对抗网络(GANs)的出…

全栈:如果SSM项目里的数据库是mysql而自己使用的是SQLserver应该替换哪些文件?

将基于 SSM(Spring SpringMVC MyBatis)框架项目里的 MySQL 换成 SQL Server,主要需改动以下几部分: 1. 依赖配置(pom.xml) 移除 MySQL 驱动依赖:找到原 MySQL 驱动相关依赖,一般类…

基于 Jenkins Pipeline 实现 DITA 文档自动化构建与发布(开源方案)

这是我最近开发的一个基于 Jenkins Pipeline 的 DITA 文档自动化构建方案。对于需要维护大量 DITA 格式文档的团队来说,手动构建不仅效率低下,还容易出现版本不一致的问题。通过这套开源方案,我们可以实现代码拉取、多地图并行构建、结果归档…

reinterpret_cast and static cast

什么时候使用 reinterpret_cast&#xff1f;指针类型之间的转换&#xff1a; 当需要将一种类型的指针转换为另一种类型的指针时&#xff0c;可以使用 reinterpret_cast。例如&#xff1a;int* intPtr new int(10); void* voidPtr reinterpret_cast<void*>(intPtr); // …

自动化运维 | 乐维8.0安装及简单使用

文章目录1.创建虚拟机2.安装乐维8.03.Web界面登录访问4.添加第一个监控在文章的开头需要感谢乐维带来这么好的自动化运维系统提供我们学习参考或是在生产环境中进行使用&#xff0c;并附上乐维官网供大家参考和学习&#xff1a;https://www.lwops.cn/1.创建虚拟机 在VMware wo…

无印良品:回归本质的管理哲学

一、底层管理哲学 First, the underlying management philosophy核心思想&#xff1a;「无印」即「无品牌标识」&#xff0c;回归产品本质Core idea: "Muji" means "no brand logo", returning to the essence of products.拒绝过度营销&#xff0c;靠产品…

Redis面试精讲 Day 13:Redis Cluster集群设计与原理

【Redis面试精讲 Day 13】Redis Cluster集群设计与原理 开篇 欢迎来到"Redis面试精讲"系列第13天&#xff0c;今天我们将深入探讨Redis Cluster的集群设计与实现原理。作为Redis官方提供的分布式解决方案&#xff0c;Redis Cluster是面试中必问的高频考点&#xff…

LangChain-Unstructured 基础使用:PDF 与 Markdown 处理解析

文章目录LangChain-Unstructured 基础使用&#xff1a;PDF 与 Markdown 处理解析一、核心依赖与库说明二、核心类与方法详解1.UnstructuredLoader&#xff08;1&#xff09;类原型与核心功能&#xff08;2&#xff09;初始化参数详解&#xff08;3&#xff09;核心方法详解① l…

uboot使用指南

1.uboot的分类本节是 uboot 的使用&#xff0c;所以就直接使用正点原子已经移植好的 uboot&#xff0c;这个已经放到了开发板光盘中了&#xff0c;路径为&#xff1a;开发板光盘->1、程序源码->3、正点原子 Uboot 和 Linux 出厂源码->uboot-imx-2016.03-2.1.0-ge468cd…

学习率预热总结

学习率预热是什么&#xff1f; 学习率预热&#xff08;Learning Rate Warmup&#xff09; 是一种在深度学习训练初期逐渐增加学习率的策略。其核心思想是&#xff1a;在训练开始时使用较小的学习率&#xff0c;逐步增加到目标学习率&#xff0c;以避免模型参数在初始阶段因学习…

初识SYSCFG(System Configuration Controller)寄存器映射

SYSCFG&#xff08;System Configuration Controller&#xff09;寄存器映射的详细说明&#xff0c;以 STM32&#xff08;如 F1/F4/F7 系列&#xff09;为例。SYSCFG 控制器用于系统级配置&#xff0c;如外部中断映射、存储器重映射等。SYSCFG 寄存器映射概述 基地址&#xff1…

《P3403 跳楼机》

题目背景DJL 为了避免成为一只咸鱼&#xff0c;来找 srwudi 学习压代码的技巧。题目描述Srwudi 的家是一幢 h 层的摩天大楼。由于前来学习的蒟蒻越来越多&#xff0c;srwudi 改造了一个跳楼机&#xff0c;使得访客可以更方便的上楼。经过改造&#xff0c;srwudi 的跳楼机可以采…

【GPT-OSS 全面测评】释放推理、部署和自主掌控的 AI 新纪元

目录 一、背景与意义 二、核心参数对比 三、性能评测&#xff08;Benchmark&#xff09; 四、硬件适配与优化 五、安全性与风险 六、部署方式 七、适用场景 八、大型语言模型对比表&#xff08;2025 年 8 月版&#xff09; 总结 一、背景与意义 &#x1f4a1; 为什么…