【openlayers系统学习】4.2Mapbox 样式渲染图层

news2024/10/5 10:42:12

二、Mapbox 样式渲染图层

显然我们目前的地图需要一些样式。 VectorTile​ 图层的样式与 Vector​ 图层的样式工作方式完全相同。那里描述的样式在这里也适用。

对于这样的地图,创建数据驱动的样式(对矢量图层操作)非常简单。但矢量切片也用于街道地图,其中样式通常会根据地图的缩放级别而有很大差异。在这些情况下,手动完成所有这些操作可能太耗时。

在网络制图的历史中,人们曾多次尝试创建用于设计地图样式的工具和格式。最流行的格式可能是 SLD 和 CartoCSS。一个图形工具是 Atlas Styler。但这些格式或工具都没有真正方便使用。

Mapbox 最终推出了 Mapbox Studio,一个非常用户友好的样式编辑器,以及 Mapbox 样式格式。 Mapbox Style 格式易于手动读写,并且受到越来越多的应用程序的支持。图形开源编辑器 Maputnik 可作为 Mapbox Studio 的独立替代品,用于创建和修改 Mapbox 样式文件。

使用 Mapbox 样式定义

在 OpenLayers 中使用具有 Mapbox 样式的矢量切片图层有两种方法。最简单的是 MapboxVector​ 层。它配置了一个指向 Mapbox 样式文档的 url。让我们尝试一下。

首先,添加所需的导入:

import MapboxVectorLayer from 'ol/layer/MapboxVector';

我们要使用的切片数据集是 https://cloud.maptiler.com/maps/bright/。要将其添加到我们的示例中,您需要一个 MapTiler 帐户(请将下面代码中的密钥替换为您的密钥)(作为练习下面的秘钥是可以用的)。或者,如果您有 Mapbox 帐户,则可以使用 Mapbox 中的原始地图(请参阅下面代码中的注释)。

const layer = new MapboxVectorLayer({
  styleUrl:
    'https://api.maptiler.com/maps/bright/style.json?key=lirfd6Fegsjkvs0lshxe',
  // or, instead of the above, try
  // styleUrl: 'mapbox://styles/mapbox/bright-v9',
  // accessToken: 'Your token from https://mapbox.com/'
});
map.addLayer(layer);

上面的代码替换了上一步中的 VectorTileLayer​ 。当一切按预期进行时,我们终于可以享受一张漂亮的世界地图了,并放大到布宜诺斯艾利斯!

image

从 Mapbox 样式定义构建完整的地图

Mapbox 样式格式不仅仅用于设置矢量数据的样式。它是为了描述整个地图,及其所有源和图层及其初始视图配置(例如中心和缩放级别)。

ol-mapbox-style 包(属于 Workshop 依赖项的一部分)向 OpenLayers 添加了对 Mapbox 样式格式的支持。因此,将矢量切片图层与 OpenLayers 一起使用的第二种方法是让 ol-mapbox-style​ 创建整个地图。如果您想尝试这样做,可以将 main.js​ 中的整个代码替换为:

import olms from 'ol-mapbox-style';
olms(
  'map-container', // HTML容器的ID。
  'https://api.maptiler.com/maps/bright/style.json?key=lirfd6Fegsjkvs0lshxe' // 自定义地图样式的URL,含API密钥。
);

会显示出来和上面一样的地图。

尝试此操作后,切换回之前的代码,因为我们将研究如何与矢量切片地图进行交互。

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

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

相关文章

自动驾驶技术现状与需求分析

随着科技的不断进步和智能化浪潮的席卷,自动驾驶技术已成为当今交通领域的热点话题。本文旨在深入探讨自动驾驶技术的当前发展状况,并对其未来的市场需求进行细致分析。首先,我们将回顾自动驾驶技术的起源、发展历程以及当前的技术水平&#…

自动驾驶---Perception之IPM图和BEV图

1 前言 IPM(Inverse Perspective Mapping,逆透视变换)图的历史可以追溯到计算机视觉和图像处理领域的发展。逆透视变换是一种用于消除图像中透视效应的技术,使得原本由于透视产生的形变得以纠正,进而更准确地描述和理解…

早餐店燃气安全岂能马虎?探头选择与年检必须到位

在现代都市生活中,早餐店作为人们日常生活中的重要一环,其安全性问题日益受到人们的关注。其中,燃气泄漏引发的火灾和爆炸事故尤为令人担忧。 因此,点式可燃气体报警器在早餐店中的应用显得尤为重要。 在这篇文章中,…

PyTorch深度学习实战(44)——基于 DETR 的目标检测模型

PyTorch深度学习实战(44)——基于 DETR 的目标检测模型 0. 前言1. Transformer1.1 Transformer 基础1.2 Transformer 架构 2. DETR2.1 DETR 架构2.2 实现 DETR 模型 3. 基于 DETR 实现目标检测3.1 数据加载与模型构建3.2 模型训练与测试 小结系列链接 0.…

防止CSRF攻击

防止CSRF攻击 跨站点请求伪造(Cross-Site Request Forgery,简称CSRF)是一种常见的网络攻击类型。当用户在受信任的站点上通过身份验证后,访问攻击者精心准备的恶意网站、电子邮件、博客、即时消息或程序时,可能会导致…

遥感信息SCI期刊,中科院1区,IF=7+,审稿速度非常快!

一、期刊名称 International Journal of Applied Earth Observation and Geoinformation 二、期刊简介概况 期刊类型:SCI 学科领域:遥感 影响因子:7.5 中科院分区:1区 三、期刊征稿范围 《国际应用地球观测和地理信息杂志》…

ISCC2024个人挑战赛WP-MISC

(非官方解,以下内容均互联网收集的信息和个人思路,仅供学习参考) where is flag 下载附件,解压出pyc,然后到下面网址反编译 python反编译 - 在线工具 记住c,是密文, Key是 k5fg…

【QNX】Qnx IPC通信 Message-passing

Qnx IPC通信 Message-passing Message-passing介绍 QNX提供了多种IPC(Interprocess Communication )通信方式,包括Message-passing、Plus(脉冲)、Event、Signal、共享内存、Pipe,当然还有socket。 Message-passing是Qnx IPC的主…

远大阀门集团携创新产品亮相南京,展现石化行业新风采

2024年5月22日,备受瞩目的第八届中国石油和化工行业采购大会在江苏省南京市盛大开幕。作为石化行业物资采购领域极具影响力的年度盛会,本次大会吸引了众多国内外能源化工企业、化工新材料企业、工程公司以及相关领域的供应商参加。远大阀门集团作为特邀优…

【网络安全】Fortinet FortiSIEM 中存在严重未经身份验证的 RCE 漏洞:已发布 PoC

文章目录 什么是Fortinet Forti SIEMFortinet Advisor — FortiSIEM 内置生成式 AI 优势功能下一代 SOC 自动化通过链路分析实现可视化威胁猎捕 RCE 漏洞和 PoC如何降低影响推荐阅读 针对 Fortinet FortiSIEM 中一个严重的未经身份验证的远程代码执行漏洞(CVE-2023-…

NVIDIA Orin/Jetson 平台+数字同轴GMSL 车载AI视觉方案,应用于车载,机器人等领域

专注于成像和视觉技术于近期正式发布了可适配NVIDIA DRIVE AGX Orin平台的一系列摄像头产品,该产品是自主开发的数字同轴GMSL2摄像头模组,可满足智能汽车的高质量成像需求。 目前,推出可适配于NVIDIA DRIVE AGX Orin平台的摄像头产品一共有11…

ubuntu安装Stable Video Diffusion(SVD)让图片动起来

目录 写在前面 一、克隆或下载项目 二、下载预训练模型 三、创建环境 四、安装依赖 五、启动项目 六、解决报错 1.预训练模型下不来 2.TiffWriter.write() got an unexpected keyword argument fps 3.安装ffmpeg 4.No module named scripts 七、测试 写在前面 Stab…

华为机考入门python3--(30)牛客30-字符串合并处理

分类:字符串、进制转换 知识点: 获取偶数下标的字符 even_chars my_str[::2] 获取奇数下标的字符 odd_chars my_str[1::2]) 翻转字符串 reversed_str my_str[::-1] 二进制转十进制 num int(reversed_binary, 2) 十进制转十六进制 …

JWT的生成

引依赖 生成JWT JWT校验 注意

Kubernetes(k8s) v1.30.1 本地集群部署 安装metallb 支持LoadBalancer 生产环境 推荐 BGP模式部署

1 metallb 安装参考:Kubernetes(k8s) v1.30.1 本地集群部署 默认不支持LoadBalancer metallb来解决-CSDN博客 2 删除 Layer 2 模式 配置 kubectl delete -f IPAddressPool.yaml kubectl delete -f L2Advertisement.yaml kubectl delete -f discuz-srv.yaml 3 配置 k8s Metal…

IDEA 2024.1安装与破解

一、下载 官网地址:https://www.jetbrains.com/idea/download/other.html 二、安装 傻瓜式安装即可 三、破解 3.1 破解程序 网站:https://3.jetbra.in/ 3.2 获取激活码 点击*号部分即可复制成功

【机器学习】——线性模型

💻博主现有专栏: C51单片机(STC89C516),c语言,c,离散数学,算法设计与分析,数据结构,Python,Java基础,MySQL,linux&#xf…

typescript 配置精讲 | moduleResolution

大家好,我是17。 moduleResolution 是 typescript 模块配置中最重要的一个配置,所以 17 单拿出来讲一下。如果你去看文档还是挺复杂的,但如果不去深究细节,只想知道如何配置还是很简单的。3 分钟就能学会。 moduleResolution 的…

neo4j开放远程连接

注:本博客所用neo4j版本为社区5.12版 第一步:修改neo4j配置文件 首先找到neo4j的安装位置,点击进入conf文件夹,随后点击neo4j.conf文件,在“Network connector configuration”下面的单元中找到server.default_liste…

奥枫软件Java要个16K遇到地狱级难度,醉了。。。

我只能说地狱难度,没绝对把握就别去了。我凭借前辈的经验,和当时天时地利人和,六道题答得很不错,但还是没通过。我有备而来都没过,现场写那些应该都是白忙活了。 一面 1,分割一个整数。如123,结…