Proposed RFC on COLORRAMP Support (Bug 13 05)
Steve Lime
steve.lime at DNR.STATE.MN.US
Tue Sep 27 16:50:51 EDT 2005
The runtime substitution does not work everywhere- that's another RFC. Adding
support for the breaks specifically is doable with this RFC though.
How do COLORRAMPS and STYLES interact? Steve's example uses old-style code
for styling. For example, let's say I want to draw a circle with graduated colors and
also a drop shadow. Typicall I'd do this with 2 styles: 1 for the shadow (offset a bit)
and the second for the main circle. How do you determine which take advantage
of the color ramp.
Working off that, what about defiining ramps at the layer level and then referencing
the ramps by name wherever a COLOR is passed. That way label colors as well as
symbol colors could take advantage of ramps. We'd need a way to indicate that a
color is actually a reference to a color ramp, and then a function to return a color.
We definitely don't want to have to keep adding new ramp keywords...
A mapfile snippet might look like:
LAYER
COLORRAMP
NAME 'ramp1'
...
END
COLORRAMP
NAME 'ramp2'
...
END
CLASS
STYLE COLOR 181 181 181 OFFSET 1 1 END
STYLE COLOR 'ramp1' END
LABEL COLOR 'ramp2' END
END
END
Steve
>>> Bill Binko <bill at BINKO.NET> 09/27/05 3:30 PM >>>
Stephen, I thought your example would be a good test case to show how you
would get what you wanted using the ColorRamp as defined in the RFC.
I'm sure it's not 100% what you'd like, but it's fairly close.
It does make an assumption that the %% substitution works everywhere, and
I'll make sure to add that to the RFC. It also produces a legend that is
a bit different from yours, in that it puts the demographic name on the
first class, and then just the high/low values in the graded color bar
(see http://mapserver.gis.umn.edu/bugs/attachment.cgi?id=324&action=view )
Please use this as a starting point, and explain what won't work. There
may very well be some additional work on the legends that is needed, but I
think the general need you're expressing is addressed.
Bill
LAYER
NAME "zcta_thematic"
CONNECTIONTYPE postgis
CONNECTION "host=linus port=5432 dbname=census user=pgsql"
DATA "the_geom from (SELECT c.gid, c.the_geom, c.water, a.%demographic% as demog from %table% a,
sf3geo_zcta5 b, zcta c where c.state='%state%' and c.name=b.zcta5 and
a.stusab=b.stusab and a.logrecno=b.logrecno and b.stusab='%state%' and
b.sumlev='871' ) as foo using srid=4326 using unique gid"
TYPE POLYGON
STATUS ON
PROJECTION
#"proj=latlong"
"init=epsg:4326"
END
CLASSITEM "water"
CLASS
NAME "Water"
EXPRESSION "t"
OUTLINECOLOR 102 102 204
COLOR 102 102 204
END
CLASS
NAME "%demog%"
EXPRESSION ([demog] > %break0% && [demog] <= %break1%)
OUTLINECOLOR 0 0 0
COLORRANGE
MINCOLOR 102 102 102
MAXCOLOR 0 204 0
MINVALUE %break0%
MAXVALUE %break1%
RANGEITEM 'demog'
END
END
CLASS
NAME " "
EXPRESSION ([demog] > %break1% && [demog] <= %break2%)
OUTLINECOLOR 0 0 0
COLORRANGE
MINCOLOR 0 204 0
MAXCOLOR 51 255 51
MINVALUE %break1%
MAXVALUE %break2%
RANGEITEM 'demog'
END
END
CLASS
NAME " "
EXPRESSION ([demog] > %break2% && [demog] <= %break3%)
OUTLINECOLOR 0 0 0
COLORRANGE
MINCOLOR 0 204 0
MAXCOLOR 102 255 102
MINVALUE %break2%
MAXVALUE %break3%
RANGEITEM 'demog'
END
END
CLASS
NAME " "
EXPRESSION ([demog] > %break3% && [demog] <= %break4%)
OUTLINECOLOR 0 0 0
COLORRANGE
MINCOLOR 102 255 102
MAXCOLOR 153 255 153
MINVALUE %break3%
MAXVALUE %break4%
RANGEITEM 'demog'
END
END
CLASS
NAME " "
EXPRESSION ([demog] > %break4% && [demog] <= %break5%)
OUTLINECOLOR 0 0 0
COLORRANGE
MINCOLOR 153 255 153
MAXCOLOR 204 255 204
MINVALUE %break4%
MAXVALUE %break5%
RANGEITEM 'demog'
END
END
CLASS
NAME " "
EXPRESSION ([demog] > %break5% && [demog] <= %break6%)
OUTLINECOLOR 0 0 0
COLORRANGE
MINCOLOR 204 255 204
MAXCOLOR 255 294 294
MINVALUE %break5%
MAXVALUE %break6%
RANGEITEM 'demog'
END
END
CLASS
NAME " "
EXPRESSION ([demog] > %break6% && [demog] <= %break7%)
OUTLINECOLOR 0 0 0
COLORRANGE
MINCOLOR 255 294 294
MAXCOLOR 255 153 153
MINVALUE %break6%
MAXVALUE %break7%
RANGEITEM 'demog'
END
END
CLASS
NAME " "
EXPRESSION ([demog] > %break7% && [demog] <= %break8%)
OUTLINECOLOR 0 0 0
COLORRANGE
MINCOLOR 255 153 153
MAXCOLOR 255 102 102
MINVALUE %break7%
MAXVALUE %break8%
RANGEITEM 'demog'
END
END
CLASS
NAME " "
EXPRESSION ([demog] > %break8% && [demog] <= %break9%)
OUTLINECOLOR 0 0 0
COLORRANGE
MINCOLOR 255 102 102
MAXCOLOR 255 51 51
MINVALUE %break8%
MAXVALUE %break9%
RANGEITEM 'demog'
END
END
CLASS
NAME " "
EXPRESSION ([demog] > %break9% && [demog] <= %break10%)
OUTLINECOLOR 0 0 0
COLORRANGE
MINCOLOR 255 51 51
MAXCOLOR 255 0 0
MINVALUE %break9%
MAXVALUE %break10%
RANGEITEM 'demog'
END
END
END
More information about the mapserver-dev
mailing list