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?
Your
ifstatement will always evaluate to false because you re-declaregraphicevery time you run that part of code. The variable is hoisted and the value of it will be undefined when theifis evaluated.You need to declare the variable in a different scope: