我是 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/