I am doing a map which refresh dinamically all markers when they get modified.
I want to add popups to show some info.
I create popups this way:
var feature = new OpenLayers.Feature(markers, location); //location = lonlat
feature.closeBox = true;
feature.popupClass = OpenLayers.Class(OpenLayers.Popup.FramedCloud, {
'autoSize': true
});;
feature.data.popupContentHTML = "info";
feature.data.overflow = (false) ? "auto" : "hidden";
var markerClick = function (evt) {
if (this.popup == null) {
this.popup = this.createPopup(this.closeBox);
map.addPopup(this.popup);
this.popup.show();
} else {
this.popup.toggle();
}
currentPopup = this.popup;
OpenLayers.Event.stop(evt);
};
mark.events.register("mousedown", feature, markerClick);
Now, I have the problem about what to do if one of my markers update its info. How can I destroy the popup? (I will create other one) or how can I modifiy it? Can I access them using lonlat?
Sometimes, I want to delete all of them, is there a way to do that? like deleting a layer or something?
Best Answer
for getting one popup info, you should do this:
for removing one popup:
for removing all popup from maps:
for hiding and showing popups:
for finding popups from lonlat, you can get info for looping it in for loop and if clause:
and you can get the last popup with following code:
this all information is some part of Openlayers popup element...there are lots of thing you can do with popups...
i hope it helps you