[OpenLayers-Users] Reload marker
Walter Lorenzetti
lorenzetti at gis3w.it
Thu Aug 21 10:46:41 EDT 2008
Hi list,
I've a problem with a reloading of several markers layers
On my application I've n markers layer where I add severla
OpenLayers.Marker by parsing a featureserver gml output (I hope you
understand...)
like this:
for (var tp in legDbTipo){
punti[tp] = new OpenLayers.Layer.Markers(tp);
}
function parseData(req) {
g = new OpenLayers.Format.GML();
features = g.read(req.responseText);
for(var feat in features) {
// si crea la feature
var f = new OpenLayers.Feature(base, new
OpenLayers.LonLat(features[feat].geometry.x,features[feat].geometry.y));
f.attributes = new Object;
for (var j in features[feat].attributes) {
f.data[j] = features[feat].attributes[j];
f.attributes[j] = features[feat].attributes[j];
}
f.closeBox = true;
f.popupClass = AutoSizeFramedCloudMinSize;
f.data.popupContentHTML = bulidFormpopup(f,true);
f.data.overflow = "auto"
var size = new
OpenLayers.Size(legDbTipo[f.data.tipo].dimLegMapIcon.w,legDbTipo[f.data.tipo].dimLegMapIcon.h);
f.data.icon = new
OpenLayers.Icon(legDbTipo[f.data.tipo].urlLegMapIcon,size);
OpenLayers.Console.log(f);
// si crea il marker
var m = f.createMarker();
m.events.register("mousedown", f, markerClick);
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);
};
punti[f.data.tipo].addMarker(m);
}
}
function load_punti(){
OpenLayers.loadURL("/fs/featureserver.cgi/punti_turistici?format=GML",
"", null, parseData);
}
If I want to refresh my data I write this function:
function destroy_punti(){
for (var tp in legDbTipo){
for(var m in punti[tp].markers){
punti[tp].markers[m].destroy();
}
}
}
so with this I destroy every markers before created....
and after running load_punti() again I repopulate my markers layers...
but after that I've a problem with every action on the map because on
firebug I obtain the segunt error:
this.events is null
this.events=new
OpenLayers.Events(this,t...this.icon!=null)){this.icon.moveTo(px);}
Someone have an idea about this error?
Thanks in advance
Walter
More information about the Users
mailing list