Hello Andreas, I've tried your solution, but unfortunately it doesn't send the additional parameters to the script. Here's what I tried in firebug: > >> locations.refresh({force: true, params: { 'key' : 'value'}}); And the layer refreshes, but the only parameter sent is bbox.
Any other ideas? Regards, Adrian Andreas Hocevar wrote: > Hi, > > Adrian Popa wrote: >> I'm trying to display a vector layer (feed data as KML) and I'm >> trying to dynamically set some variables that are sent server-side >> for processing. >> The layer definition is the following: >> locations = new OpenLayers.Layer.Vector("Alarm Locations", { >> projection: map.displayProjection, >> minResolution: 1, maxResolution: 38, >> strategies: [new OpenLayers.Strategy.BBOX()], >> protocol: new OpenLayers.Protocol.HTTP({ >> *url: "kml_locations.pl"*, format: new OpenLayers.Format.KML({ >> extractStyles: true, extractAttributes: true })})}); >> map.addLayer(locations); >> On some event (button pressed) I use a javascript function to replace >> the "url" value from the layer definition with a url similar to: >> "kml_locations.pl?key1=value1&key2=value2". After this I call >> *layer.refresh({force: true}); >> >> *From analysing the traffic to the web server I can see that the >> layer refresh is called on the old url value (kml_locations.pl) even >> if the attribute locations.protocol.url is set to the value I imposed. >> >> My question is: when the layer is refreshed - which URL is used (is >> there a cached value)? Can this be overwritten? Or do I need to >> create a new Protocol object? > > It is much simpler than you may think. Obviously your url stays the > same (kml_locations.pl), only your params change (key1=value1, > key2=value2). So you do not need to change the url at all. All you > have to do is > > layer.refresh({ > force: true, > params: { > key1: "value1", > key2: "value2" > } > }); > > Regards, > Andreas. > _______________________________________________ Users mailing list Users@openlayers.org http://openlayers.org/mailman/listinfo/users