Mapbox隐藏自定义图层导致地图变白的问题求助
Mapbox 3D动画箭头图层隐藏导致地图变白问题及onRemove函数疑问
我在Mapbox地图中实现了动态添加带动画的3D箭头模型功能:点击对应按钮会添加模型图层,点击无对应模型的按钮时,执行以下代码隐藏所有已添加的箭头图层:
function clearMapAnimations() { console.log("CLEARING MAP ANIMATIONS"); // Loop through all layers with arrows and hide them toggleableLayerIds.forEach(layer => { const layer_name = "layer_" + layer; console.log ("Layer visibility is none: " + layer_name); map.setLayoutProperty(layer_name, 'visibility', 'none'); }); }
其中toggleableLayerIds是存储所有已添加图层ID的数组。目前已定位问题:只要注释掉map.setLayoutProperty(layer_name, 'visibility', 'none');这句,箭头图层就能正常保留,地图也不会变白,问题就出在该语句上。
另外,添加自定义图层时,我会手动设置图层的visibility属性为visible,代码如下:
const arrow_layer = addArrow(lyr_id, map, lng_lat, rot, arrow_length, arrow_type); map.addLayer(arrow_layer, 'waterway-label'); map.setLayoutProperty(lyr_id, 'visibility', 'visible');
addArrow函数负责处理模型原点、旋转角度、长度设置及动画逻辑。目前我未实现自定义图层的onRemove: function (map, gl) {}函数,想咨询:仅隐藏图层而非移除图层的情况下,是否需要实现这个onRemove函数?
内容的提问来源于stack exchange,提问作者M. Black
相关产品推荐
相关产品推荐

