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

二、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.mzph.cn/bicheng/16666.shtml

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

相关文章

单兵组网设备+指挥中心:集群系统技术详解

一、单兵设备功能特点 单兵组网设备是现代通信技术的重要成果,旨在为单个作战或工作单元提供高效的通信和数据传输能力。其主要功能特点包括: 1. 便携性:设备轻巧,便于单兵携带和使用,适应各种复杂环境。 2. 通信能…

PHP之fastadmin系统配置分组增加配置和使用

目录 一、实现功能:fasttadmin实现添加系统配置分组和添加参数、使用 二、添加分组 三、配置分组参数 四、最终存储位置 五、获取配置参数 一、实现功能:fasttadmin实现添加系统配置分组和添加参数、使用 二、添加分组 在字典配置中找到分组对应键值…

linux系统——top资源管理器

在linux系统中,有类似于windows系统中的资源管理器,top用于实时的监控系统的任务执行状态以及硬件配置信息 在linux中,输入top命令,可以进入相应界面,在此界面可以使用一些指令进行操作 如,输入z 可以改变…

终端安全管理系统、天锐DLP(数据泄露防护系统)| 数据透明加密保护,防止外泄!

终端作为企业员工日常办公、数据处理和信息交流的关键工具,承载着企业运营的核心信息资产。一旦终端安全受到威胁,企业的敏感数据将面临泄露风险,业务流程可能遭受中断,甚至整个企业的运营稳定性都会受到严重影响。 因此&#xff…

【EVI】Hume AI 初探

写在前面的话 Hume AI宣布已在B轮融资中筹集5000万美元,由前Google DeepMind研究员Alan Cowen创立并担任CEO。该AI模型专注于理解人类情感,并发布了「共情语音界面」演示,通过语音对话实现互动。从 Hume AI 官网展示的信息,EVI 能…

力扣刷题--747. 至少是其他数字两倍的最大数【简单】

题目描述 给你一个整数数组 nums ,其中总是存在 唯一的 一个最大整数 。 请你找出数组中的最大元素并检查它是否 至少是数组中每个其他数字的两倍 。如果是,则返回 最大元素的下标 ,否则返回 -1 。 示例 1: 输入:n…

Python-opencv通过距离变换提取图像骨骼

文章目录 距离变换distanceTransform函数 距离变换 如果把二值图像理解成地形,黑色表示海洋,白色表示陆地,那么陆地上任意一点,到海洋都有一个最近的距离,如下图所示,对于左侧二值图像来说,【d…

漂流瓶挂机项目,聊天脚本赚钱新玩法,号称单机30-50+ (教程+软件)

一、项目简介: 漂流瓶挂机项目主要是通过使用探遇漂流瓶、音麦漂流瓶等聊天软件,为用户提供一个聊天赚钱的平台。男性用户需要充值后才能发送消息,而女性用户则可以通过接收消息赚取分红。男性用户发送给女性用户的消息费用大约在.1-.2元之间…

VScode中对git的学习笔记

1.git是什么? Git是一个功能强大的分布式版本控制系统,由Linux内核的创始人Linus Torvalds在2005年创建。它以其速度、数据完整性和支持大型项目的能力而闻名,被广泛应用于软件开发中。Git允许开发者在本地机器上拥有完整的代码库副本&#x…

SashulinMessageBroker:在消息流中调用C++ DLL

一、背景 在现实应用中,算法、核心逻辑为了追求快速高效的运行速度,很多人都采用C来编写,并打包成动态库供外部使用。SMB针对这种应用场景,提供了DLL组件,实现在消息流中对DLL的动态调用。下实例讲解如何实现DLL as S…

多旋翼+发电机:国债应急系留照明无人机技术详解

多旋翼发电机技术的应急系留照明无人机是一种集成了先进飞行技术、发电技术和照明技术的无人机系统。这种无人机具有高度的灵活性、移动性和适应性,能够在各种复杂环境下迅速部署,为夜间搜救、救援等应急任务提供高效、可靠的照明支持。 无人机参数&…

融汇11款AI工具构建完美应用

本文将为您介绍25个开源项目,分为上下两篇以便您融汇它们来制作自己的AI应用。人工智能(AI)应用在近年来得到了长足的发展。从语音助手到软件开发,人工智能已在我们的生活中无处不在,并得到了广泛应用。 如您所见&…

构建智慧城市公共服务系统的功能架构设计

随着城市化进程的加速,城市公共服务系统在保障居民生活品质、提升城市管理水平方面扮演着愈发重要的角色。构建智慧城市公共服务系统的功能架构设计至关重要,它不仅需要充分考虑居民需求与城市管理的实际情况,还需要整合先进的科技手段&#…

LINGO:存贮问题

存贮模型中的基本概念 模型: 基本要素: (1)需求率:单位时间内对某种物品的需求量,用D表示。 (2)订货批量:一次订货中,包含某种货物的数量,用 Q表…

【C语言】实现贪吃蛇--项目实践(超详细)

前言: 贪吃蛇游戏大家都玩过吧?这次我们要用C语言来亲手制作一个!这个项目不仅能让我们复习C语言的知识,还能了解游戏是怎么一步步做出来的。我们会一起完成蛇的移动、食物的生成,还有碰撞检测等有趣的部分。准备好了…

新计划,不断变更!做自己,接受不美好!猪肝移植——早读(逆天打工人爬取热门微信文章解读)

时间不等人 引言Python 代码第一篇 做自己,没有很好也没关系第二篇结尾 引言 新计划: 早上一次性发几个视频不现实 所以更改一下 待后面有比较稳定的框架再优化 每天早上更新 早到8点 晚到10点 你刚刚好上班或者上课 然后偷瞄的看两眼 学习一下 补充知…

SSM流浪宠物领养系统 毕业设计-附源码 270917

摘 要 流浪宠物一直是影响城市环境与居民生活的一个不可忽略的因素。基于此,本文设计并实现一个流浪宠物领养系统。用户可以通过本系统查看搜索流浪宠物的相关信息、进行领养申请,为其提供爱心帮助。本系统有效地解决了流浪宠物领养工作开展困难等问题&a…

STM32F1之OV7725摄像头·SCCB总线详解(附带源码编写)

STM32F1之OV7725摄像头-CSDN博客 STM32F1之OV7725摄像头像素数据输出时序、FIFO 读写时序以及摄像头的驱动原理详解-CSDN博客 目录 1. 硬件设计 1.1 SCCB 控制相关 1.2 VGA 时序相关 1.3 FIFO 相关 1.4 XCLK 信号 2. 代码设计 2.1 SCCB总线软件实现 2.1.1 宏定…

上位机图像处理和嵌入式模块部署(f103 mcu运行freertos)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 mcu一般有两个用途,一个是控制,一个是非控制。控制类的应用一般要求实时性比较高,什么时候做什么,都是有严格的时间要求的。而非控制类的应用,则要求实现尽可能多的功能,比如…

spring boot整合j2cache 配置项目全局键标识 帮助定位是哪个项目产生的缓存

我们利用 j2cache 存进 redis的缓存 key 可以加个全局标识 这样 到时看缓存 方便别人看是哪个项目存进去的 例如 这里 我们存入的 book 我们 keys * 查看 就知道是个book 但不知道具体来自那套系统 我们在 j2cache.properties 中加上 redis.namespace 项目全局键标识 我们…