mapbox - 如何使用 Mapbox JS GL 以自定义样式更改图层的可见性?

标签 mapbox

我是 mapbox JS GL 的初学者。我正在寻找一种方法,让用户有机会在单击按钮时更改 map 框中图层的可见性。
在 MapBox 工作室中,我添加到基本样式可见层“区域”。我试图这样做:

<script> ...
var mapp = new mapboxgl.Map({
container: 'map',
style: 'mapbox://styles/terentev/ck2so0c4h1q5x1cqow0aj9nh8',
center: [34.047, 63.779],
zoom: 5.41
});
mapp.setLayoutProperty('regions','visibility','none');

但图层并没有消失。

当我尝试从样式中获取图层时:
var v = mapp.getStyle().layers;

我不能。怎么做才对?
提前致谢!

这是图层“区域”,添加到基本样式:
layer 'regions' in mapbox studion
我试过这样:
var v = mapp.getLayoutProperty('regions', 'visibility');
 alert('visibility '+ v );
 mapp.setLayoutProperty('country-label','visibility','visible');
 v = mapp.getLayoutProperty('regions', 'visibility');
 alert('visibility '+ v );

第一次警报时,我收到“可见性未定义”
但是第二次警报根本没有结果

最佳答案

尝试这个:

var mapp = new mapboxgl.Map({
container: 'map',
style: 'mapbox://styles/terentev/ck2so0c4h1q5x1cqow0aj9nh8',
center: [34.047, 63.779],
zoom: 5.41
});

mapp.on('load', () => {
     mapp.setLayoutProperty('regions','visibility','none');
})

看起来您正在调用 setLayoutProperty在 map 正确加载之前

关于mapbox - 如何使用 Mapbox JS GL 以自定义样式更改图层的可见性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58888462/

相关文章:

icons - 是否可以在 Mapbox 标记中使用 Font Awesome 图标?

java - 当输入字母时,Mapbox 自动完成搜索会使应用程序崩溃

javascript - 在标记mapbox.js上添加自定义图标

android - 如何使用 Mapbox Android SDK 从本地 geojson 属性设置图标类型

ios - 如何使用 swift 在 map 上按顺序显示自定义标记/注释

java - Eclipse 中的 Mapbox Android

leaflet - 如何在 Mapbox Leaflet 中绘制距离另一个标记 100 米的标记?

javascript - 防止绘制零值缩放点、Mapbox、传单

javascript - MapBox API专属图层切换器

android - Mapbox Android SDK - 可拖动标记