如何从地图上删除所有图层?

我有一个可以从地图上单独删除所有图层的功能:

function resetMap() {

map.removeLayer(Frog1Layer);
map.removeLayer(Frog2Layer);
map.removeLayer(Frog3Layer);
map.removeLayer(Frog4Layer);
map.removeLayer(Frog5Layer);
map.removeLayer(Frog6Layer);
map.removeLayer(Frog7Layer);
map.removeLayer(Frog8Layer);
}

我认为有更好的方法吗?我尝试将它们分成一组,但是问题是,我已经将它们分别添加到地图中,因此可以通过页面上的按钮触发它们,而且我不知道如何将它们分组而不将它们添加到地图中。组。

我尝试了以下操作:

function resetMap() {

    var allLayers = L.layerGroup([Frog1Layer,Frog2Layer,Frog3Layer,Frog4Layer,Frog5Layer,Frog6Layer,Frog7Layer,Frog8Layer])

    map.removeLayer(allLayers);
}

,它不起作用。 Web控制台显示“未定义”,但我不知道这意味着什么吗? t是什么,为什么L.layerGroup不起作用?我该怎么做呢?抱歉,我是Java的新手。

fybbbg 回答:如何从地图上删除所有图层?

假设数组中有要删除的图层,则可以使用forEach遍历图层并从map中删除每个图层:

var layerArray = [Frog1Layer,Frog2Layer,Frog3Layer,Frog4Layer,Frog5Layer,Frog6Layer,Frog7Layer,Frog8Layer];
layerArray.forEach(function(layer) { map.removeLayer(layer); })

除非将特定的LayerGroup添加到地图上,否则删除LayerGroup无效。如果您打算以其他方式一起使用这些层,则可能值得将它们构造为LayerGroup。如果要执行此操作,请将其添加到LayerGroup,然后使用map.addLayer添加组对象,而不是对每个图层执行map.addLayer

本文链接:https://www.f2er.com/3158023.html

大家都在问