[mapserver-users] Re: showing certain classes selected via cgi

Puneet Kishor punk.kish at gmail.com
Thu Oct 27 08:34:30 PDT 2011


Seems like I *can* do the following per the docs at http://mapserver.org/cgi/runsub.html (more below)
On Oct 27, 2011, at 8:56 AM, Puneet Kishor wrote:

> (I thought I had asked this question and received and answer, but can't find it now... maybe I just dreamed it and never did ask. Here goes...)
> 
> 
> I have a map with a layer with 100s of classes. I want to send a class name via the URI, and get back a map of only that class. So, the following will return the map with all the classes
> 
> 	http://server/map
> 
> and, the following will return the map with only foo and bar classes
> 
> 	http://server/map?classes=foo,bar
> 
> The above URI pattern is just a suggestion. How can I achieve the above?
> 
> One thought comes is to split the layer with 100s of classes into 100s of layers each with one class.
> 
> In any case, what is the advised way forward?
> 
> 

So, I tried the following

	CONNECTION "host=localhost port=5432 dbname=macromap user=postgres password=postgres"
	CONNECTIONTYPE POSTGIS
	PROCESSING "CLOSE_CONNECTION=DEFER"
	DATA "the_geom FROM table USING UNIQUE gid USING srid=4326"
	FILTER "class_name = '%class%'"

	METADATA
		'class_name_validation_pattern' '^[A-Za-z]+$'
	END

And, requested the map at http://server/cgi-bin/app?mode=map&layers=layer&class=Foo but got the following error --

	select "interval_name",encode(ST_AsBinary(ST_Force_2D("the_geoms"),'NDR'),'hex') as geom,
	"gid" from table where the_geom && GeomFromText('POLYGON((-180.150250417362 -90,-180.150250417362 
	90,180.150250417362 90,180.150250417362 -90,-180.150250417362 -90))',4326) and 
	(class_name = '%class%')

So, %class% didn't get interpolated into the requested value. What am I doing wrong?

--
Puneet Kishor


More information about the MapServer-users mailing list