[mapserver-users] Display multiple classes using WMS
geographika
geographika at gmail.com
Fri Jan 23 08:24:58 PST 2015
Hi list,
I'm trying to do something I thought would be quire simple, but seems
may not be possible in MapServer.
I have a client JavaScript application that uses MapServer as a WMS/WFS
backend. The UI has a checkbox that allows the user to see the data with
or without labels.
With the deprecation of the ANNOTATION layer I started to update my
MAPFILE LAYER definitions. Some of the DATA clauses are very complicated
so I moved my LABEL class into the same layer as the line features which
are also colour coded.
I can switch between by LABEL class and the other classes using
CLASSGROUP and the WMS STYLES parameter.
E.g. in the MapFile:
CLASSGROUP "default"
CLASS
NAME 'Complete'
GROUP "default"
...
END
CLASS
NAME 'Incomplete'
GROUP "default"
...
END
# a single class containing labels for all features
CLASS
GROUP "labels" # hidden by default, but can be activated with STYLE
...
END
I can then use the STYLES property of the WMS server to hide/show labels
by requesting the same layer twice with two different styles e.g.
No labels: http://localhost/mapserver/?LAYERS=Mylayer......STYLES=
Labels:
http://localhost/mapserver/?LAYERS=Mylayer,MyLayer......STYLES=default,labels
This works well, but has a major drawback that the database is queried
twice for the same data, which in my case causes a performance issue. Is
there anyway to do this in a single-pass query?
It seems MapServer will only ever apply one class per feature. I could
add a LABEL class to each default CLASS using includes, however I see no
way of then turning these off, except maybe using MapScript?
Any workarounds / pointers helpful.
Regards,
Seth
--
web:http://geographika.co.uk
twitter: @geographika
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mapserver-users/attachments/20150123/90fb4f80/attachment.htm>
More information about the MapServer-users
mailing list