You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 09:42:46