[OpenLayers-Users] Overriding url for Vector layer
Adrian Popa
adrian_gh.popa at romtelecom.ro
Wed Jul 8 03:21:59 EDT 2009
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.
>
More information about the Users
mailing list