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

如何使用Mapbox JS GL更改自定义样式中图层的可见性?,mapbox,Mapbox,我是mapbox JS GL的初学者。我正在寻找一种方法,让用户有机会在单击按钮时更改mapbox中图层的可见性。 在MapBox studio中,我将添加到基本样式可见层“区域”。我试图这样做: <script> ... var mapp = new mapboxgl.Map({ container: 'map', style: 'mapbox://styles/terentev/ck2so0c4h1q5x1cqow0aj9nh8', center: [34.047, 63.779

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

<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.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
,但映射尚未正确加载

代码看起来正常。只要确保你的风格有“区域”层。有控制台错误吗?
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');
})