我在开放层地图中添加了一些标记。我想知道如何在单击按钮时从地图中删除所有内容。我找到了一种方法来做到这一点,但它需要多次点击,这很糟糕。
我使用以下代码删除:
function ClMap() {
map.getLayers().forEach(function (layer) {
if (layer.P.name != "Main" && layer.P.name != "GIS") {
map.removeLayer(layer);
}
map.removeInteraction(draw);
});
ol.Observable.unByKey(keyClick);
}
我找到了答案
var layersToRemove = [];
map.getLayers().forEach(function (layer) {
if (layer.P.name == "popupMarker") {
//map.removeLayer(layer);
layersToRemove.push(layer);
}
map.removeInteraction(draw);
});
var len = layersToRemove.length;
for(var i = 0; i < len; i++) {
map.removeLayer(layersToRemove[i]);
}
ol.Observable.unByKey(keyClick);