[Mapcss] Little syntax easement

Tom MacWright tom at macwright.org
Mon Feb 6 14:40:41 GMT 2012


Hey,

Some ideas from Carto:

Since we already have references to fields in filter syntax, like

#way[type='highway']

These should be predictably used elsewhere. However, to make fields vs
constants (or numbers, color strings, etc) explicit, the syntax will
probably be something like

#way[ [type] = 'highway' ]

And then field references in stylesheets will be

#way { line-width: [lanes]; }

Given the ability of PostGIS etc to represent column names called 'true',
etc., it's pretty necessary to make a strict difference between the two.
That said, Carto deals with arbitary data and avoid arbitrary eval, so the
usecase & implementation is a bit different.

Tom

On Mon, Feb 6, 2012 at 9:35 AM, Paul Hartmann <phaaurlt at googlemail.com>wrote:

> 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
>
> _______________________________________________
> Mapcss mailing list
> Mapcss at openstreetmap.org
> http://lists.openstreetmap.org/listinfo/mapcss
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstreetmap.org/pipermail/mapcss/attachments/20120206/e3d3f419/attachment.html>


More information about the Mapcss mailing list