Bus lane tagging schemes in use in OSM
The busway=* scheme
Main article: busway=*
This scheme indicates the presence of at least one bus lane on one or more sides of the road. The "opposite" term indicates a contra-flow lane, i.e. one where the direction of bus traffic is opposite to the direction of other traffic. The side of the road can be indicated with :left and :right suffixes.
|Tag||Number of uses|
|busway=lane, opposite_lane, ...|
|busway:left=lane, opposite_lane, ...|
|busway:right=lane, opposite_lane, ...|
The lanes:psv=* scheme
Main article: lanes:psv=*
This scheme provides a count of the lanes reserved for public service vehicles (which include buses). It can specify the bus lane's direction relative to the direction in which the way is drawn.
|Tag||Number of uses|
This scheme can denote taxi-specific lanes too: its lanes: prefix forms
|Photo||"busway=*" scheme||"lanes:psv=*" scheme|
into town Monday to Friday 6 - 9 clock
out of town Mon through Fri from 14 to 18 clock
lanes:psv:forward:conditional=1 @ (Mo-Fr 06:00-09:00)
lanes:psv:backward:conditional=1 @ (Mo-Fr 14:00-18:00)
Which scheme to use?
The purposes of these schemes are similar, and with the exception of directly capturing information about the contraflow nature of a lane, the lanes:psv scheme logically implies the entirety of the busway scheme. The directional details of these schemes are literally orthogonal. Both schemes can be used together, but for maintanability it's probably best to pick one and stick with it.
- The busway scheme is simpler, and older. It says nothing about usage of the lane by taxis or other classes of Public Service Vehicle.
- The lanes:psv scheme is broader in scope, including taxis and other classes of Public Service Vehicle if used as given. It can be limited to just buses by using an alternative tag key, lanes:bus. It does not directly capture the detail that a bus lane is contraflow, but that can be inferred from the simultaneous presence of a oneway=* tag on the way.
- More recently written pages which are kept up to date, such as lanes=*, favour the lanes:psv scheme.
When a bus lane is shared with a cycleway=*, this is denoted with specific values in the cycleway scheme: cycleway=share_busway and cycleway=opposite_share_busway. Opposite carries the meaning that cycle traffic is contraflow, and with [...]_share_busway it implies that the buses also travel in the opposite direction to the bulk of traffic.