[OSM-talk] Key:layer update

Richard Z. ricoz.osm at gmail.com
Sun Mar 9 23:57:04 UTC 2014

On Sun, Mar 09, 2014 at 10:26:59PM +0000, Matthijs Melissen wrote:
> On 9 March 2014 10:30, Richard Z. <ricoz.osm at gmail.com> wrote:
> > for some time now I have been working on the wiki page to state the rules
> > as clearly as possible.. hope that most of the improvements are fairly
> > uncontroversial.
> Thank you for doing this, it's very useful to have this properly
> documented. I have been working on layering in the main CartoCSS
> stylesheet, and found that at the moment, indeed not all aspects of
> the layering model are defined precise enough.
> A question: a single road can contain sections on multiple layers, so
> there will be a point where the sections that are on different layers
> meet. At that point, there might even be a side street. However, no
> vertical ordering should be assumed at such a point. It is written
> that "The vertical ordering established by the layer values is valid
> exactly only in the point where the ways cross or objects overlap."
> Perhaps 'crossing' should be interpreted here as crossing without
> node, but that causes problems with bridge/waterway.

it should be indeed crossing without a shared node, have already updated 
the text to clarify that. 

> In other words, I am wondering for each of the following situations if
> the roads should be interpreted as meeting on the same or different
> levels:
> - A node where two waterways on layer 1 and two roads on layer 2 meet;

the roads should join at the same physical level in this node. Except the
node is a pylon connecting two bridges on two levels and a waterway or 
a similarly weird exception which is not described in the wiki but happens 
in real life and probably somewhere in OSM data as well.
Generally, if the node does not have a special type (lift, pylon, part of 
buildings with level) the roads should join as expected.

Nothing is certain about the waterway unless the node is of type ford
or pylon, or the layering is otherwise obvious such as when the road is
on a dam or weir.
Exceptions and errors in data are currently very common where waterways 
and roads have shared nodes.
Once I have mapped a weir with a highway ford on top it and part of the 
water going through a pipe through the weir.

Conceptually I am thinking of it so that certain constructions such as
a dam establish a "connection" in the sense that both the road and the
river are passing over/through it and hence are connected to the dam 
without really meeting in this point - the dam establishes its own layering

> - A node where two roads on layer 1 and two roads on layer 2 meet;
> - A node where two roads on layer 1 and one road on layer 2 meet;
> - A node where one road on layer 1 and one road on layer 2 meet.

they should all join without steps and exceptions should be extremely
rare.(maybe lifts and such)
More precisely "layer" does not say anything in this situation so the 
default rule applies - roads are expected to join without steps.

It is important to understand that the meaning of "layer" is very limited:

- it applies exactly only in the point (without shared node) of the crossing
  and has absolutely no meaning anywhere else
- it has absolutely no defined meaning if not in combination with one of bridge,
  tunnel and the other tags listed in the wiki (I may have forgotten some but you
  get an idea)
- a number of other tags (covered, location, level, dam and probably some other) 
  define own layering concepts or modify layer in strange ways


More information about the talk mailing list