mapbox - Mapbox - 是什么决定了国家标签显示在哪个缩放级别?
问题描述
这个问题是关于 Mapbox Studio 的。我的用例显示了各个国家之间的税收协定地图,其中一些非常小的国家由于是避税天堂而很重要,例如毛里求斯。毛里求斯岛的标签仅在地图缩放级别 2 或更高级别显示,而将此标签显示在与其他较大国家/地区相同的突出位置会很有用。标签是烘焙到 Mapbox 瓦片中还是有办法控制它们何时出现?
我发现您可以进一步过滤显示哪些国家/地区,但不能控制它们出现在哪个缩放级别的初始设置。
解决方案
大多数情况下,当想要更改特定标签的样式时,最好的方法是按照本指南自定义单个标签的标签文本。但是,正如您所提到的,毛里求斯岛仅在地图缩放级别 2 下显示。我们可以通过以下概述的步骤确定这是源数据如何包含在 Mapbox Streets 瓦片集中的限制。有时,数据不会出现在地图样式中,因为它的样式方式(即如何为相关图层指定属性),而其他时候它不会出现,因为它根本不包含在底层瓦片集中在那个特定的缩放级别。Tilesets 有条件地包含不同缩放级别的数据以提高性能。
- 导航到样式的相关图层(在本例中为
country-label
符号图层)。 - 切换到
Select data
选项卡。此视图允许您查看在特定缩放级别可见的标签。 - 探索不同的缩放级别以查看包含在该缩放级别的绿色功能。在这里,我们看到
Mauritius
不存在于z1.99
但存在于z2
。
幸运的是,Mapbox Streets 背后的大部分数据都来自OpenStreetMap,您可以使用多种不同的方法下载所需的数据,然后将其包含在您的地图样式中:
- 使用Overpass Turbo下载您想使用的数据。
- 从这里开始,您有两个选项来平铺数据 - 您可以使用Mapbox Tilesets API或 Mapbox 创建的开源工具Tippecanoe。您可以了解如何使用本指南中的任一工具来调整数据的缩放范围。
- 将上一步中创建的图块集上传到您的 Mapbox 帐户。
- 在您的样式中添加一个引用此图块集的新图层。然后,您可以指定此图层以低于 的缩放级别显示
z2
。
如果您只想添加几个国家/地区标签,则手动创建带有标签和坐标的 GeoJSON 文件,然后使用 Tilesets API 平铺此数据可能更容易,而不是使用 Overpass Turbo 下载数据.
推荐阅读
- python - 如果条件为真,则在 python 中使用 any() 方法返回列表的索引
- jquery - 使用 JSON 和 AJAX 通过视图传递 dict
- python - 在日期列中查找最小值?
- python - sys.path.insert 引用 github 模块时出错
- javascript - Firebase Cloud Firestore noSQL
- r - 过滤r中的data.frame字符列
- scala - 通过 spark-shell 进行 Hadoop Config 设置似乎没有效果
- .net-core - ExecuteXmlReader 在 SQL Server 的特定 JSON 上失败
- python - 我想平滑我的 python matplotlib 图,代码不起作用
- javascript - 在 React Native 中创建行