Bus lanes

From OpenStreetMap Wiki
Jump to navigation Jump to search

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
Buslane.jpg
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
Busspur und Haltestelle in Mannheim 100 9128.jpg
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
Buslane 2.jpg
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
Buslane 1.jpg
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
Schusterstraße nach Süden ab Ecke Christofsstraße (2023).jpg
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 suffix *:lanes=* can tell data consumers the position of bus lanes, the prefix lanes:*=* can't.
  • 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.