2017-05-08 26 views
3

我正在使用Mapbox Dark v9风格,并希望删除所有标签。删除Mapbox GL JS上的所有标签?

我找到了一个标签列表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"); 

有没有办法从风格删除标签?

回答

6

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

screenshot

如果重要的是你要删除在运行时所有的标签层,你可以不喜欢

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

只是注意,也将删除那些符号层,不文字“标签”。检查是否存在“text-field”属性可能更安全。 –