[mapserver-users] passing cgi query params to wms layers

Stephen Woodbridge woodbri at swoodbridge.com
Tue Sep 27 00:04:35 EDT 2011


On 9/26/2011 10:29 PM, Puneet Kishor wrote:
> I am using OpenLayers as the front-end, requesting a WMS layer from MapServer that is getting data from Pg. My DATA statement is like so
>
> 	DATA "the_geom FROM (SELECT gid, pc, the_geom FROM table) t USING UNIQUE gid USING srid=4326"
>          FILTER "pc = 'na'"
>
> The above works fine. However, I would like to send the value of "pc" from OpenLayers (that is another problem that I am experiencing; I have asked on OL list on how to send query params to WMS layers, but if any of you know the solution, I would welcome that). In any case, I thought (naively), that I could change my FILTER statement like so
>
> 	FILTER "pc = '[pc]'"
>
> I tried sending a WMS query directly to test the above like so [http://server/cgi-bin/app?.. blah ..&pc=na] but no joy. Forcing a query error showed me that MapServer was executing the following
>
> 	select .. from (..) t where the_geom&&  GeomFromText(..) and (pc = '[pc]')
>
> How can I dynamically supply MapServer a filter value?

Does this doc answer your question?
   http://mapserver.org/cgi/runsub.html

This should help from the mapserver side of things. In the OpenLayers 
side of things you will need to propagate the parameter values into the 
base URL for the WMS request and get OpenLayers to propagate that change 
into the layer object. If you expect the existing map to change when you 
change the values, then you will need to force OpenLayers to redraw the 
layer to request a new image or tiles based on the updated parameters.

-Steve W


More information about the mapserver-users mailing list