Proposed features/lane transition

From OpenStreetMap Wiki
Jump to: navigation, search
Lane transitions
Status: Draft (under way)
Proposed by: xnyhps
Tagging: lane_transition=TBD
Drafted on: 2017-10-16


Currently, highways can be tagged with how many lanes (lanes=*) they have and where those lanes are indicated to be going (turn:lanes=*). However, this information is not complete enough to follow a lane completely. If a lane appears without any turn indications, then the number of lanes increases but information about where exactly this lane is added is not present. It could appear on the left, on the right, and even in some cases somewhere in the middle. This proposal aims to add this data in a simple way that can be applied in a large portion of where lanes change.


Navigation systems could show not only which lanes to take for the next exit, but also which lanes are optimal for what happens after that. To be able to do that, complete lane transition information is needed.

Proposed_features/transit already exists, however, it has a number of downsides:

  • The name is confusing, "transit" is often used in the context of public transport.
  • It proposes tagging the way to indicate the lane transition at the end of that way. This is confusing, and it makes it easy to break the tagging, for example by splitting a way.
  • It has no way to indicate that two lanes swap places, for example crossing a bus lane to enter a right turn lane.
  • It has not received many changes or discussion since the proposal was started in 2015, and is not being used very actively.

Instead, this proposal specifies a simpler format (tagging only a single node), which should be usable in most situations, and a relation-based format for more complicated scenarios.



This tag can be applied to either a single node or as a relation.

On a node

This option can only be used if a road does not split and/or merge and is one-way. In other words, the node is the end node of a one-way highway and the start node of another one-way highway, and is not connected to any other highways.

The tagging works by numbering the lanes of the incoming segment from left-to-right (as viewed in the driving direction) starting from 1. The tag specifies, for each of the lanes on the outgoing segment, the number assigned to the lane (or lanes) of the incoming segment which can move into that lane without changing lanes (i.e., crossing a line), separated by | (a vertical bar). If the value for a specific lane is empty, it has newly appeared. If two lanes merge, and traffic from both lanes can enter the new lane without crossing a line, the numbers of those lanes are specified, separated by ;. This is similar to how the :lanes suffix is used, however, that can only be applied to ways.







On a relation

If the situation is not "simple", then a relation must be used. This works in much the same way as turn restrictions. The relation contains a member as the from and a member as the to, which should be connected by a single node. The tagging is the same as the simple case.

Applies to

Nodes on two or more different highways for which the total lane count of incoming lanes does not match the total of outgoing lanes.


If a render shows each lane separately, then it needs this proposal to align the rendering at the points where the number of lanes changes.

Features/Pages affected

This would deprecate transit=*.

External discussions


Please comment on the discussion page.