我使用 Mapbox Studio 创建了自己的 Mapbox 样式。
这个 GL JS 地图本身是在代码中导入的,如下所示:
let selectedStyle = "mapbox://styles/abc/def";
map = new mapboxgl.Map({
container: 'map',
center: [parseFloat(lonInput), parseFloat(latInput)],
zoom: parseFloat(zoomInput),
pitch: 0,
style: selectedStyle,
preserveDrawingBuffer: true,
fadeDuration: 0,
attributionControl: false,
zoomControl: false
});
我添加了一个输入复选框,使访问者可以切换地图上标签的显示。根据他们的选择,所有城市、街道、POI 的名称……应该或不应该显示在地图上。
经过一番研究,我在 Mapbox 的文档中找到了此页面:https://docs.mapbox.com/mapbox-gl-js/guides/styles/#mapbox-standard-1
我认为应该可以使用以下代码切换标签的显示:
map.on('style.load', () => {
map.setConfigProperty('basemap', 'showPlaceLabels', false);
});
但我不确定
baseMap
指的是什么。我的应用程序中似乎没有它。应该是什么?
或者还有其他方法可以做到这一点吗?
底图是指核心Mapbox标准样式,在未提供样式选项时默认启用。
既然你使用自己的风格,你需要做这样的事情
map.style.stylesheet.layers.forEach(function(layer) {
if (layer.type === 'symbol') {
map.setLayoutProperty(layer.id, "visibility", "none");
}
});