[mapserver-users] default values if not provided in the URL

Puneet Kishor punk.kish at gmail.com
Thu Oct 27 12:56:39 EDT 2011


On Oct 27, 2011, at 11:22 AM, Smith, Michael ERDC-CRREL-NH wrote:

> Punnet,
> 
> What I do in the situations where I want to default to all or allow some
> filtered access is
> 
> METADATA
>   "default_classes" "1=1"
> END
> 
> So the dummy condition is passed when no filter is specified.
> 
> 
> 


Believe it or not, I thought up of the above solution myself but discarded it because I understood the text in the documents to mean the following --

	FILTER "class = '%class%'"

will be applied if a class is provided. However, if no class is provided, and if the following is provided

	METADATA
		"default_class" "1=1"
	END

Then the filter will become "class = '1=1'", which is, of course not correct. And, I just checked the logs with the above mods, and my suspicion was proven correct. My log file shows ms croaking with the following

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

Obviously, I do not want "class = '1=1'"


> 	
> 
> 
> On 10/27/11 8:49 AM, "Puneet Kishor" <punk.kish at gmail.com> wrote:
> 
>> the fine manual says http://mapserver.org/cgi/runsub.html
>> 
>>> Since version 5.6, you can provide a default value for any substitution
>>> parameter, that will be applied if the parameter was not found in the
>>> url. 
>>> You do this by providing special entries inside the layer metadata :
>>> 
>>> 	METADATA
>>> 		'default_sound' 'yes'
>>> 		'default_nseats' '5'
>>> 		'default_multimedia' 'yes'
>>> 	END
>>> 
>>> In this example, the mapfile will be created as if the url contained
>>> ³&sound=yes&nseats=5&multimedia=yes²
>> 
>> 
>> Right then. Except, I want *all* my classes to be drawn if no class has
>> been provided. And, if one or more classes have been provided, then I
>> want only those to be drawn. So,
>> 
>> 	http://server/mapfile?mode=map
>> 
>> should return a map with all the 100+ classes in a layer. And
>> 
>> 	http://server/mapfile?mode=map&classes=Foo,Bar
>> 
>> (or some other variation of the above) should return a map with only the
>> requested classes in the layer. I can't think of anyway of doing the
>> above without resorting to scripting, and I still have had no luck with
>> WMS returned from Perl MapScripting.
>> 
>> Suggestions.
>> 
>> --
>> Puneet Kishor_______________________________________________
>> mapserver-users mailing list
>> mapserver-users at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/mapserver-users
> 



More information about the mapserver-users mailing list