On Wednesday, July 8, 2009, Adrian Popa <adrian_gh.p...@romtelecom.ro> wrote: > 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?
how about modifying the protocol's params with something like: layer.protocol.options.params = { "foo": "foo", "bar": "bar" }; > 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 > -- Eric Lemoine Camptocamp France SAS Savoie Technolac, BP 352 73377 Le Bourget du Lac, Cedex Tel : 00 33 4 79 44 44 96 Mail : eric.lemo...@camptocamp.com http://www.camptocamp.com _______________________________________________ Users mailing list Users@openlayers.org http://openlayers.org/mailman/listinfo/users