I don't know why this isn't working. I would assume the answer is really simple. I need to remove a layer before adding a new one.
if (graphic) {
window.map.removeLayer(graphic);
}
var graphic = new OpenLayers.Layer.Image(
'Sightline'+''+SC,
url,
new OpenLayers.Bounds(derWesten[0].firstChild.nodeValue,derSueden[0].firstChild.nodeValue,derOsten[0].firstChild.nodeValue, derNorden[0].firstChild.nodeValue),
new OpenLayers.Size(0,0),
options
);
window.map.addLayer(graphic);
It just keeps piling on the layers and not removing any. Any help?
forEach(layer => map. removeLayer(layer)); Alternatively, you can also use the layer collection's internal forEach() method for similar results.
Use map.getLayersByName(layerName)
get the layers. You might need to keep track of the names of the layers in some array or something
The method returns an array, so you go through the array of layers and
use map.removeLayer(layer)
.
You can externalize this solution in a different function if you want and it works.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With