我正在使用
Mapbox Dark v9
风格,想删除所有标签。
我在这里找到了标签列表。
并尝试使用
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");
有没有办法从样式中删除标签?
如果您只是在寻找没有标签的深色底图——也就是说,在运行时以编程方式删除它们并不重要——您可以在 Mapbox Studio 中使用深色模板创建一个新样式,并使用样式编辑器来选择和删除所有标签层。然后您可以发布样式并在您的应用程序中使用它的 url。
如果在运行时删除所有标签层对你来说很重要,你可以做类似的事情
map.style.stylesheet.layers.forEach(function(layer) {
if (layer.type === 'symbol') {
map.removeLayer(layer.id);
}
});
很抱歉复活了一个我在谷歌上搜索时出现的老问题。我的目标是能够随意打开和关闭标签,所以我将上面的代码修改为:
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");
}
});