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

ttisahbt  于 2023-04-04  发布在  Java
关注(0)|答案(2)|浏览(125)

我使用的是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");

是否有方法从样式中删除标签?

py49o6xq

py49o6xq1#

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

如果在运行时移除所有标注图层对您非常重要,则可以执行以下操作

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

i2byvkas2#

很抱歉,我在谷歌上搜索的时候又出现了一个老问题。我的目标是能够随意打开和关闭标签,所以我修改了上面的代码:

let show = false; //or true, etc.                   
map.style.stylesheet.layers.forEach(function(layer) {
    if (layer.type === 'symbol') {
        map.setLayoutProperty(layer.id,"visibility", show?"visible":"none");
    }
});

相关问题