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

时间:2019-11-16 07:16:18

标签: 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],
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 );

在第一个警报中,我得到“可见性未定义” 但完全没有第二次警报的结果

1 个答案:

答案 0 :(得分:1)

尝试一下:

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');
})