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

时间:2017-05-08 06:31:28

标签: javascript mapbox mapbox-gl-js mapbox-gl

我使用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 个答案:

答案 0 :(得分:10)

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

screenshot

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

的操作
map.style.stylesheet.layers.forEach(function(layer) {
    if (layer.type === 'symbol') {
        map.removeLayer(layer.id);
    }
});