Proposed features/layer change
|Definition:||a flag to renderers that the way joins another on a lower layer|
|Rendered as:||end caps suppressed when drawing lines|
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.
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.