[mapserver-users] default values if not provided in the URL
Smith, Michael ERDC-CRREL-NH
Michael.Smith at usace.army.mil
Thu Oct 27 10:07:13 PDT 2011
I guess I get around that by passing class=1 as my filter so I can pass
1=1 as the default
If you want to set a default that gets all, perhaps you could use a like
filter
FILTER "Class like %class%"
And a default of "%"
Mike
--
Michael Smith
US Army Corps
Remote Sensing GIS/Center
On 10/27/11 9:56 AM, "Puneet Kishor" <punk.kish at gmail.com> wrote:
>
>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