在客户端上,我从postgres数据库中获取了一堆多边形,然后将它们作为覆盖层添加到图层控件中。目前,这是通过单击菜单进行的,每次它在控件中添加另一个“多边形”复选框时。我需要先清除所有旧的覆盖层,然后使用一组新的“多边形”覆盖层进行刷新。如何在添加新的叠加层之前以编程方式将其删除?
var controlLayers = L.control.layers(baseMaps).addTo(map);
$.getJSON('/db/getPolys', function (geojsonFeatures) {
console.log('returned polys...',geojsonFeatures.features);
if(geojsonFeatures.features == null){
alert('No polygons where found');
}else{
geojsonLayer = L.geoJson(geojsonFeatures,{
onEachFeature: drawStep1Polys
});
// need to remove before adding anything
// if (geojsonLayer exists){
// controlLayers.removeLayer(geojsonLayer);
// }
controlLayers.addOverlay(geojsonLayer, 'Polygons');
}
});
最佳答案
controlLayers.removeLayer(geojsonLayer)
(请注意,您必须保留先前的图层引用)