Proposal:Deprecate busway=* for bus lanes

From OpenStreetMap Wiki
(Redirected from Proposal:Deprecate busway=*)
Jump to navigation Jump to search
Please don't change the content of this page.

The content of this proposal has been marked as archived to avoid confusion with the current version of the documentation.

To check whether the displayed page corresponds to the version at the time of archiving (end of voting),
the original revision can be accessed here: original / compare with current.


Proposal:Deprecate busway=* for bus lanes

Deprecate busway=*
Proposal status: Approved (active)
Proposed by: ManuelB701
Tagging: busway=*
Applies to: way
Definition: Deprecate busway=* for bus lanes in favour of lanes:bus=* resp. bus:lanes=* due to logical problems and redundancy with this tagging.
Statistics:

Draft started: 2024-10-08
RFC start: 2024-10-17
Vote start: 2024-11-01
Vote end: 2024-11-15

Proposal

This proposal aims to deprecate the key busway (and its subkeys busway:left resp. busway:right) because

  • of the ambiguity with lanes=*
  • doesn't tell data consumers the position of the bus lanes
  • inflexibility to specify bus lane access
  • specifically for busway=opposite_lane, the same reasons as with cycleway=opposite i.e. combining two functions into one key. This, by extension, also includes the (now) undocument busway=opposite.

Naturally in the world OSM, this doesn't stop anyone from using busway=* (see Any tags you like) but it helps others to consider that better (and more widespread) alternatives exist.

Relation to highway=busway

It also is possible to use busway to specify the type of highway=busway akin to how footway=* is used to specify the type of highway=footway. Right now, it's more like cycleway=* which is used to denote the highway adjacent bicycle infrastructure (though it is preferred if one were to specify the side of the infrastructure) but also to specify the type of highway=cycleway. Since no (common) tags exist, the key as a whole will be considered "soft deprecated" i.e. generally considered deprecated until uses of it as a specification of highway=busway tags will be documented. This means busway=* won't get the {{Deprecated}} warning nor should QA ever warn the existence on busway alone but does get mentioned that its usage for bus lanes specifically is deprecated.

However, busway:left=*, busway:both=*, busway:right=*, busway=lane and opposite_lane will unambiguously be deprecated because all five of them can only be used in combination with bus lanes, the former three because they specify the side where the bus infrastructure exists (which doesn't make sense to specify the type of highway=busway), the latter two which are used to mark bus lanes only[Note 1] and have replacement tags.

Rationality

busway=* was first used in the early days of OSM to indicate whether a road has lanes dedicated to buses or not. Over the last decade, more and more specific tags (most notably, *:lanes=*) were developed which (partially) overlap with this key but without its major downsides.

The result is that busway=* is rarely used on its own or combined with other tagging which overlap in use with it. Here is a list of its issues:

lanes=* counts the total lanes for dual tracked vehicles of a road. This excludes bicycle lanes (bicycles are single tracked) but doesn't necessary exclude bus lanes. This becomes a problem on how data consumers count the total lanes of a street: Should you count busway=lane towards lanes=* or not? Example: Is a road with lanes=2 + busway=lane a three lane road with one lane reserved for buses or a two lane road with only lane for buses? The documentation for bus lanes does count busway=lane for lanes=* but some roads are tagged without including the busway=* lane to lanes=*.
  • Lack of position information with busway=*:
busway=lane (even with directional tags) only tells data consumers that a road has bus lanes but not where exactly. This makes it problematic to see whether a bus lane is located in the middle or at the edge of a carriageway (this is different from the related cycleway=* where bicycle lanes are always assumed to be near the edge, turn lanes aside). In the more extreme case, bus lane is bi-directional and busway=* is entirely insufficient of this purpose. One solution is to split the road into multiple ways but this goes against the OSM philosophy on mapping highways (see dual carriageway for a related case). Another solution is to combine it with busway:lanes=* but this alone has overlap with bus:lanes=*.
  • Lack of access information for busways:
With exception of cycleway=share_busway, you can't directly specify the access for the bus lane for other vehicles, particularly public service vehicles which may drive on bus lanes by law. One solution is to prefix it with the access mode (e.g. busway:taxi=*) but the lanes is more direct and fine tuned about this and for psv in particular, can be redundant.
  • Redundancy with other tags:
Related to the above, busway=* got the alternatives lanes:bus=* and bus:lanes=* for quite a while. In fact, most use of busway=* is already combined with bus:lanes=* which further suggests that one tagging style can be represented with the other. The only justification to use busway=* at all is for backward compatibility but the other methods also have been long established and up to date tools take care of them.
See Proposal:Deprecate cycleway=opposite family for more details but in short, busway=opposite_lane was used at a time when oneway exceptions such as oneway:bus=* and oneway:psv=* weren't in use. However, because it combines two features into one tag (that being the existence of infrastructure and oneway regulations), being fairly inflexible (both in access aside from bicycles as well as inflexibility — not all oneway exceptions for buses take shape of a lane but busway=opposite was never widespread and possibly is never taken into account by data consumers) as well as (nowadays) better methods of excluding oneway restrictions on a per-vehicle-mode basis, this tag has nowadays little purpose even without deprecating busway=*.
By extension, this includes busway=opposite which hasn't been documented nor is commonly (but still) used but should nonetheless be documented for completion purposes.

All in all, considering these issues, there are few advantages of using busway=* over lanes:bus=* or bus:lanes=* with the main advantages being easier to use. In fact, bus:lanes=* alone surpasses the use of busway=*, busway:left=* and busway:right=* together.

Tagging and Examples

Examples are taken from Bus lanes#Examples with a contraflow example added:

Photo old busway scheme lanes:bus scheme bus:lanes scheme
Oneway with exclusive bus lane
highway=*
oneway=yes
lanes=3
busway=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
busway=lane
cycleway=share_busway
highway=*
oneway=yes
lanes=3
lanes:psv=1[Note 2]
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
busway:conditional=lane @ (Mo-Fr 14:00-18:00)
cycleway:conditional=share_busway @ (Mo-Fr 14:00-18:00)
highway=secondary
oneway=yes
lanes=3
lanes:psv:conditional=1 @ (Mo-Fr 14:00-18:00)[Note 2]
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
busway:right:conditional=lane @ (Mo-Fr 06:00-09:00)
busway:left:conditional=lane @ (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
lanes:psv:forward:conditional=1 @ (Mo-Fr 06:00-09:00)[Note 2]
lanes:psv:backward:conditional=1 @ (Mo-Fr 14:00-18:00)[Note 2]
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
oneway=yes

Manual contraflow lane method:
busway:left=lane
busway:left:oneway=-1
oneway:bus=no
oneway:taxi=no

Opposite lane method:
busway=opposite_lane
(optional: oneway:bus=no)
(Note: Taxi access can only be handled with oneway:taxi=no, there is no other tagging that taxis are allowed in the contraflow lane.)


Modern cycleway tagging:
cycleway:left=share_busway
cycleway:left:oneway=-1
oneway:bicycle=no

Deprecated cycleway tagging (for completion only):
cycleway=opposite_share_busway
(optional: oneway:bicycle=no)

highway=tertiary
lanes=2
lanes:forward=1
lanes:backward=1
lanes:psv:backward=1[Note 2]
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

Notes

  1. busway=lane with highway=busway should never be used together because tagging lanes individually is a violation of OSM's practices and separate busways are by definition not lanes.
  2. Jump up to: 2.0 2.1 2.2 2.3 2.4 PSVs in Germany includes both buses and taxis so lanes:psv=* should be used because the bus lane permits taxis and avoids ambiguity with the amount of taxi lanes at the cost of losing of information of dedicated bus lanes.

Features/Pages affected

Further discussions

Comments

Please comment on the discussion page or the announcement thread in Discourse.

Voting

Voting closed

Voting on this proposal has been closed.

It was approved unanimously.

  • I approve this proposal I approve this proposal. --Supsup (talk) 11:35, 1 November 2024 (UTC)
  • I approve this proposal I approve this proposal. --Jofban (talk) 11:43, 1 November 2024 (UTC)
  • I approve this proposal I approve this proposal. --Robot8A (talk) 18:32, 1 November 2024 (UTC)
  • I approve this proposal I approve this proposal. I'd generally recommend the bus:lanes scheme due to its flexibility, but even the lanes:bus scheme is already a clear improvement over busway. --JeroenvanderGun (talk) 18:54, 1 November 2024 (UTC)
  • I approve this proposal I approve this proposal. --Emvee (talk) 16:22, 2 November 2024 (UTC)
  • I approve this proposal I approve this proposal. --Rskedgell (talk) 22:36, 2 November 2024 (UTC)
  • I approve this proposal I approve this proposal. Thank you for this proposal! --Dimitar155 (talk) 18:06, 3 November 2024 (UTC)
  • I approve this proposal I approve this proposal. --Famlam (talk) 19:01, 3 November 2024 (UTC)
  • I approve this proposal I approve this proposal. --Fabi2 (talk) 01:55, 4 November 2024 (UTC)
  • I approve this proposal I approve this proposal. HellMap (talk) 18:11, 5 November 2024 (UTC)
  • I approve this proposal I approve this proposal. --Local scanner (talk) 13:01, 8 November 2024 (UTC)
  • I approve this proposal I approve this proposal. --ToniE (talk) 12:04, 10 November 2024 (UTC)
  • I approve this proposal I approve this proposal. --Tordans (talk) 12:12, 10 November 2024 (UTC)
  • I approve this proposal I approve this proposal. --Computae (talk) 10:46, 11 November 2024 (UTC)
  • I approve this proposal I approve this proposal. --Supaplex030 (talk) 17:39, 11 November 2024 (UTC)
  • I approve this proposal I approve this proposal. --Osmwithspace (talk) 11:43, 12 November 2024 (UTC)
  • I approve this proposal I approve this proposal. --scai (talk) 12:12, 12 November 2024 (UTC)
  • I approve this proposal I approve this proposal. --Heelas-uk (talk) 20:47, 12 November 2024 (UTC)
  • I approve this proposal I approve this proposal. --Uboot (talk) 10:51, 13 November 2024 (UTC)
  • I approve this proposal I approve this proposal. LG Dwain 17:22, 13 November 2024 (UTC)