[Mapcss] "Layer" in MapCSS

Komяpa me at komzpa.net
Fri Sep 27 13:09:10 UTC 2013


2013/9/19 Stephan Bösch-Plepelits <skunk at xover.htu.tuwien.ac.at>:
> On Wed, Sep 18, 2013 at 05:01:26PM +0300, Komяpa wrote:
>> In that case, "layer" is value of layer= tag, with default of 0. That
>> gives automagical perfect rendering of multi-level crossings.
>> Probably it should be changed somehow to kick this behaviour in from
>> stylesheet itself, but I haven't found a better solution.
> On Wed, Sep 18, 2013 at 03:10:58PM +0100, Richard Fairhurst wrote:
>> MapCSS has traditionally taken the attitude that stylesheet authors
>> shouldn't have to worry about this and has therefore automagically
>> abstracted them away.
> Yes, I guess for multi-level crossings this would work rather fine, but I
> can think of several scenarios where this could go so wrong:
> * Landuse-Polygons: Landuse-Polygons usually don't have a layer tag.
>   With a default value of 0 they will be rendered after roads with a
>   negative layer tag and therefore obstruct them.

In kothic that's solved by using -x-kot-layer: bottom.
plus, there's fill-position: background to put landuse polygons below
the line casings.

> * Same with polygons with a layer-tag - I can set a layer=10 on
>   landuse=residential and obstruct the whole city :-)
> * On the OpenStreetBrowser basemap (which is not MapCSS - yet) I render
>   road casings twice, first directly after the landuse polygons with
>   linecap=round and the then on their respective layer with linecap=none.

That's interesting. Maybe we can change meaning of what casing= is, to
allow this behaviour by default?

> * I would render icons and labels always on the highest layer so as they
>   don't get obstructed by other objects.

That's done already in Kothic.

More information about the Mapcss mailing list