删除 Mapbox GL JS 上的所有标签?

Posted

技术标签:

【中文标题】删除 Mapbox GL JS 上的所有标签?【英文标题】:Remove all labels on Mapbox GL JS? 【发布时间】:2017-10-06 01:44:02 【问题描述】:

我正在使用Mapbox Dark v9 样式并想删除所有标签。

我找到了标签列表here。

并已尝试使用map.removeLayer 功能删除其中一些,例如:

map.removeLayer("place_label");

还有:

map.removeLayer("place-city-lg-n");
map.removeLayer("place-city-lg-s");
map.removeLayer("place-city-md-n");
map.removeLayer("place-city-md-s");
map.removeLayer("place-city-sm");

有没有办法从样式中删除标签?

【问题讨论】:

【参考方案1】:

如果您只是在寻找没有标签的深色底图 - 即在运行时以编程方式删除它们并不重要 - 您可以使用深色模板在 Mapbox Studio 中创建新样式并使用样式编辑器选择并删除所有标签图层。然后,您可以发布样式并在您的应用中使用其 url。

如果 在运行时删除所有标签层对您很重要,您可以执行类似的操作

map.style.stylesheet.layers.forEach(function(layer) 
    if (layer.type === 'symbol') 
        map.removeLayer(layer.id);
    
);

【讨论】:

请注意,这也会删除作为符号的图层,而不是文本“标签”。检查text-field 属性的存在可能更安全。 你能说一下如何在mapbox中没有任何标签的暗地图

以上是关于删除 Mapbox GL JS 上的所有标签?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Mapbox Mapmatching API 输出与 mapbox-gl-js 一起使用?

如何在 mapbox-gl-js 中以某些缩放级别隐藏点标签?

markdown Mapbox GL JS标签位于雷达栅格之上

我可以像在(mapbox-gl-js 文档)中那样使用 react-map-gl 添加 GeoJSON 行吗?

如何使用最新的 Mapbox-gl-js 版本避免透明度重叠?

在 mapbox gl js 中删除源不会删除其图层