Johan Forsman wrote:
Thanks Steve, that appears to work!
I did not realize MapServer would on its own accord exclude the
already CLASSified records from the second CLASS unless I explicitly
instructed it what to exclude. I presumed it would just draw them
again together with the rest. Nice!
You can think if the CLASSes as a SWITCH or CASE statement. Records are
read from the data source and each CLASS EXPRESSION is tested and the
first that matches is the one that draws the object, then a new object
is fetched. So a couple of tricks that you can do are:
1. if you have a CLASS at the end with NO expression it acts like the
"default" class in a switch.
2. if you do NOT want to draw some class of objects you can FILTER them
which is faster, but you can also create a CLASS with an EXPRESSION to
recognize them like:
CLASS
EXPRESSION /dont draw this/
END
This will trap these but there are not draw commands so nothing is rendered.
-Steve W
Thanks!
Now back to monitoring the brewing storm in the Gulf.
-----Original Message----- From: Lime, Steve D (DNR)
[mailto:[email protected]] Sent: Friday, July 23, 2010 10:01
AM To: Johan Forsman; [email protected] Subject: RE:
CLASS EXPRESSION regex help?
Hi Johan: Are you looking for just two classes, one for records
that start with "LADE" and another for everything else? If so you
can just omit the expression from the second class and it will
function as a default class so everything that doesn't match the
first will be assigned the second. It's faster to execute than
trying to expressly define a second regex. Doesn't solve the regex
error but then again you may not need to.
Steve
-----Original Message----- From:
[email protected] [mailto:mapserver-users-
[email protected]] On Behalf Of Johan Forsman Sent: Friday,
July 23, 2010 9:20 AM To: [email protected] Subject:
[mapserver-users] CLASS EXPRESSION regex help?
All:
Regex neophyte, using MS 5.4.2 in FGS on Ubuntu Server 9.10, I wish
to render two classes based on content in a PostGIS field.
For the first CLASS I want all records that start with "LADE", and
using
NAME "LADE" EXPRESSION /^LADE.*/
appears to return the expected records.
However, for the second CLASS I want all records that DO NOT start
with "LADE", but using
NAME "Other" EXPRESSION /^(?!LADE).*/
does not return any records and the log contains
msEvalExpression() error: Regular expression error. Invalid regular
expression.
Examples out in the ether all indicate that this "negative
lookahead" is supposed to do exactly what I want.
What am I doing wrong in this instance?
Thanks! /Johan.
---------------------- Johan Forsman Geologist Safe Drinking Water
Program Louisiana Department of Health and Hospitals Office of
Public Health Telephone: 225.342.7309 Telefax: 225.342.7303
_______________________________________________ mapserver-users
mailing list [email protected]
http://lists.osgeo.org/mailman/listinfo/mapserver-users
_______________________________________________ mapserver-users
mailing list [email protected]
http://lists.osgeo.org/mailman/listinfo/mapserver-users
_______________________________________________
mapserver-users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/mapserver-users