从 Google 地图隐藏/删除特定 GoogleMapsOverlay

Hide / Remove Specific GoogleMapsOverlay From Google Map

我通过多选将 geojson 文件用于 google 地图。但是当我尝试删除覆盖时,它不起作用。这是我用于添加和删除的代码。 我需要知道如何从地图中删除选定的 geojson 文件

    var deckOverlay ;
    deckOverlay = new deck.GoogleMapsOverlay({
                layers: [
                    new deck.GeoJsonLayer({
                        id: 'layerId',
                        data: 'path of geojson file',
                        filled: true,
                        pointRadiusMinPixels: 2,
                        opacity: 0.5,
                        pointRadiusScale: 2000,
                        getFillColor: f => (f.properties.COLOR),
                        wireframe: true,
                        pickable: true,
                    }), +
                    new deck.ArcLayer({
                        id: 'arcs',
                        data: Layer_Id,
                        dataTransform: d => d.features.filter(f => f.properties.scalerank < 4),
                        getSourcePosition: f => [-0.4531566, 51.4709959], // London
                        getTargetPosition: f => f.geometry.coordinates,
                        getSourceColor: [0, 128, 200],
                        getTargetColor: [200, 0, 80],
                        getWidth: 1
                    })
                ]
            });   

    if (checked) {
        deckOverlay.setMap(map); // Set multiple overlays working
    }
     else {
        deckOverlay.setMap(null); // Remove Option Not Working
        deckOverlay = null; 
    }

通过使用数据层。

加载地图

map.data.loadGeoJson(Layer_Id); 

删除特定图层

map.data.forEach(function (feature) {
if (feature.getProperty('myprop') == myprop) { 
map.data.remove(feature);
}
}); 

删除所有图层

map.data.forEach(function (feature) { 
map.data.remove(feature);
}); 

仅供参考,在 json 文件中使用颜色代码作为 HEX,而不是 RGB 或 RGBA