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

cpd*_*cpd 6 javascript mapbox mapbox-gl mapbox-gl-js

我正在使用这种Mapbox Dark v9风格,并希望删除所有标签.

我在这里找到了一份标签清单.

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

map.removeLayer("place_label");
Run Code Online (Sandbox Code Playgroud)

以及:

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");
Run Code Online (Sandbox Code Playgroud)

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

小智 11

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

截图

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

map.style.stylesheet.layers.forEach(function(layer) {
    if (layer.type === 'symbol') {
        map.removeLayer(layer.id);
    }
});
Run Code Online (Sandbox Code Playgroud)