如何切换 Mapbox 地图上标签的显示?

问题描述 投票:0回答:1

我使用 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
指的是什么。我的应用程序中似乎没有它。应该是什么?

或者还有其他方法可以做到这一点吗?

javascript mapbox mapbox-gl-js
1个回答
0
投票

底图是指核心Mapbox标准样式,在未提供样式选项时默认启用。

既然你使用自己的风格,你需要做这样的事情

map.style.stylesheet.layers.forEach(function(layer) {
    if (layer.type === 'symbol') {
        map.setLayoutProperty(layer.id, "visibility", "none");
    }
});
© www.soinside.com 2019 - 2024. All rights reserved.