[Mapcss] Little syntax easement
Paul Hartmann
phaaurlt at googlemail.com
Mon Feb 6 14:35:57 GMT 2012
On 02/06/2012 10:27 AM, Richard Fairhurst wrote:
> Hi all,
>
> I'd like to suggest a little 'easement' to make MapCSS syntax less
> verbose in one particular case.
>
> Right now, if you want to use a tag value in a declaration, you need to
> fire up the eval parser:
> way[highway] { width: eval("tag('lanes')"); }
>
> It'd be more pleasant, and more efficient, to allow this too:
> way[highway] { width: tag('lanes'); }
>
> and it's quite CSS-like, because you can of course use a similar syntax
> in Real CSS:
> way[highway] { color: rgb(0,0,0); }
+1
I'd go one or two steps further:
(1) Get rid of eval:
width: eval("tag('lanes') * 5");
would become
width: tag('lanes') * 5;
(2) Interpret any keyword FOO in an expression as prop("FOO") unless
it matches a build-in keyword. (This adds support for global constants.)
way {
RESIDENTIAL_COLOR: #AAAAAA;
LANE_WIDTH: 3;
}
way[highway=residential] {
color: RESIDENTIAL_COLOR;
width: tag("lanes") * LANE_WIDTH;
}
way[highway=residential][oneway=yes] {
width: width - 2;
}
Paul
More information about the Mapcss
mailing list