Proposal:Layer change

From OpenStreetMap Wiki
Jump to navigation Jump to search
Proposal status: Abandoned (inactive)
Proposed by: RichardMann
Tagging: layer_change=yes/no
Applies to: way
Definition: a flag to renderers that the way joins another on a lower layer

Rendered as: end caps suppressed when drawing lines
Draft started: 2010-07-27


It is useful for renderers to know that a way joins another way at a lower level, so they can suppress the normal drawing of a circle at the end of a line. These circles are normally almost entirely over-written by lines, but that doesn't happen if one of the lines is on a lower layer (assuming the layers are being respected).

For simple bridges, a renderer can simply assume each end of the bridge is on a higher level than the ways it connects to and suppress the circles at both ends accordingly, but that doesn't work for tunnels/underpasses. Most renderers currently give up, and only partially respect layers. This flag allows renderers to properly respect layer tags in all situations.

Applies to

  • Way


layer_change=yes for ways joining a lower-layer way. For example, the ways joining a layer=-1 way. It may be sensible to create a separate, relatively short way to connect to the layer=-1 way, to be sure that nothing unexpected happens at the other end of the connecting way: you should avoid having two layer_change=yes ways connecting to one another.

layer_change=no for bridges where, for some reason, they connect to ways on the same level, and those ways connect to lower ways (and therefore need layer_change=yes tags). For instance, it may feel appropriate to tag an above-ground walkway as layer=1, even when it is not actually bridging over another way.


Renderers are advised to consider drawing borders/casings in the correct layer, and to suppress end caps when (bridge=yes and (not layer_change=no)) or (layer_change=yes)


This tag is purely for the renderer, and not directly associated with a physical feature. As such, some regard it as an abomination.

It has been designed so that it is effective at allowing renderers to respect layers without pre-processing, while only needing to be used occasionally. It is unlikely that a consensus will be reached in favour of this tag: it is left up to taggers and renderers whether they wish to make use of it.


Please use the discussion page for comments.

See also