Bus lanes
Bus lane tagging schemes in use in OSM
There are two schemas in common use in OpenStreetMap for representing bus lanes on normal roads: the lanes:psv=* scheme and the bus:lanes=* schema.
For bus tracks outside of the main highway's carriageway, use highway=busway.
The lanes:*=* scheme
- Main article: lanes:bus=*
- Main article: lanes:psv=*
This scheme provides a count of the lanes reserved for buses resp. public service vehicles (which include buses). It can specify the bus lane's direction relative to the direction in which the way is drawn.
The *:lanes=* scheme
- Main article: Lanes, see also Lane dependent restrictions and *:lanes=*
This schema provides keys per lane including access restrictions, so you can identify exactly which lane is the bus lane.
Distribution overview
Lane count information of PSVs (e.g. lanes:psv=1 )
|
Access information per lane (e.g. psv:lanes=yes|designated )
| ||
---|---|---|---|
Tag | Number of uses | Tag | Number of uses |
lanes:psv=<count> |
psv:lanes=<list> |
||
lanes:psv:forward=<count> | psv:lanes:forward=<list> | ||
lanes:psv:backward=<count> | psv:lanes:backward=<list> |
| |
lanes:bus=<count> | bus:lanes=<list> |
| |
lanes:bus:forward=<count> | bus:lanes:forward=<list> | ||
lanes:bus:backward=<count> | bus:lanes:backward=<list> |
Examples
Photo | "lanes:psv=*" scheme | "bus:lanes=*" scheme |
---|---|---|
Oneway with exclusive bus lane |
highway=* oneway=yes lanes=3 lanes:bus=1 |
highway=* oneway=yes lanes=3 access:lanes=yes|yes|no bus:lanes=yes|yes|designated |
Oneway with designated bus lane and taxi plus bicycle allowed |
highway=* oneway=yes lanes=3 lanes:psv=1 cycleway=share_busway |
highway=* oneway=yes lanes=3 access:lanes=yes|yes|no bus:lanes=yes|yes|designated bicycle:lanes=yes|yes|yes taxi:lanes=yes|yes|yes cycleway=share_busway |
Oneway with conditionally designated bus lane and several other transport modes allowed |
highway=secondary oneway=yes lanes=3 lanes:psv:conditional=1 @ (Mo-Fr 14:00-18:00) cycleway:conditional=share_busway @ (Mo-Fr 14:00-18:00) |
highway=secondary oneway=yes lanes=3 access:lanes:conditional=(yes|yes|no) @ (Mo-Fr 14:00-18:00) bus:lanes:conditional=(yes|yes|designated) @ (Mo-Fr 14:00-18:00) bicycle:lanes:conditional=(yes|yes|yes) @ (Mo-Fr 14:00-18:00) taxi:lanes:conditional=(yes|yes|yes) @ (Mo-Fr 14:00-18:00) cycleway:conditional=share_busway @ (Mo-Fr 14:00-18:00) |
Dualway with conditionally designated bus lane and several other transport modes allowed into town Monday to Friday 6 - 9 clock out of town Mon through Fri from 14 to 18 clock |
highway=secondary lanes=4 lanes:forward=2 lanes:backward=2 lanes:psv:forward:conditional=1 @ (Mo-Fr 06:00-09:00) lanes:psv:backward:conditional=1 @ (Mo-Fr 14:00-18:00) cycleway:right:conditional=share_busway @ (Mo-Fr 06:00-09:00) cycleway:left:conditional=share_busway @ (Mo-Fr 14:00-18:00) |
highway=secondary lanes=4 lanes:forward=2 lanes:backward=2 access:lanes:forward:conditional=(yes|no) @ (Mo-Fr 06:00-09:00) access:lanes:backward:conditional=(yes|no) @ (Mo-Fr 14:00-18:00) bus:lanes:forward:conditional=(yes|designated) @ (Mo-Fr 06:00-09:00) bus:lanes:backward:conditional=(yes|designated) @ (Mo-Fr 14:00-18:00) bicycle:lanes:forward=yes|yes bicycle:lanes:backward=yes|yes taxi:lanes:forward=yes|yes taxi:lanes:backward=yes|yes emergency:lanes:forward=yes|yes emergency:lanes:backward=yes|yes cycleway:right:conditional=share_busway @ (Mo-Fr 06:00-09:00) cycleway:left:conditional=share_busway @ (Mo-Fr 14:00-18:00) |
Oneway street with a contraflow bus lane Note that the image shows against the direction of the way. Also technically not a oneway street due to the lack of sign 220 (Einbahnstraße) but is in function |
highway=tertiary lanes=2 lanes:forward=1 lanes:backward=1 lanes:psv:backward=1 oneway=yes oneway:bus=no oneway:bicycle=no oneway:taxi=no cycleway:left=share_busway cycleway:left:oneway=-1 |
highway=tertiary lanes=2 lanes:forward=1 lanes:backward=1 bus:lanes:backward=designated oneway=yes oneway:bus=no oneway:bicycle=no oneway:taxi=no cycleway:left=share_busway cycleway:left:oneway=-1 |
Which scheme to use?
The purposes of these schemes are similar, and the suffix *:lanes=* scheme logically implies the prefix lanes:*=* scheme. Both schemes can be used together, but for maintanability it's probably best to pick one and stick with it.
- The prefix lanes:*=* scheme is limited in specifying access vs. dedication. For example, many bus lanes permit taxis but aren't dedicated to them but neither lanes:bus=* (excludes taxis) nor lanes:psv=* (implies dedication to PSVs i.e. both buses and taxis) reflect this. In contrast, with the suffix *:lanes=*, you can specify the bus lane with e.g. access:lanes=|no, bus:lanes=|designated and taxi:lanes=|yes.
- More recently written pages which are kept up to date, such as lanes=*, favour the prefix lanes:*=* scheme.
Cycle lanes
When a bus lane is shared with a cycleway=*, this is denoted with cycleway=share_busway. Note that if this is a contraflow lane, make sure to also add oneway:bicycle=no to and cycleway:side:oneway=-1 to the way (with side being left for right handed traffic and right for left handed traffic).
You can also use per-lane access to handle bicycle access on the bus lanes (e.g. a three lane road with a bus lane at the edge which permits cyclists is tagged with bus:lanes=yes|yes|designated, vehicle=yes|yes|no and bicycle:lanes=yes|yes|yes
Services
See also
- Buses - the original "buses" topic, from where some of this information was moved.
- Lanes - the new :lanes suffix, for capturing even more lane-specific information.
- bus_bay=* - for a (short) lane dedicated to picking up and/or dropping off passengers, compatible with the busway=* scheme but not the lanes:psv=* scheme.
- Proposal:Deprecate busway=* for bus lanes - Proposal to deprecate one method of tagging bus lanes.