Proposal:Deprecate busway=* for bus lanes

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: | ![]() |
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) undocumentbusway=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:
- Ambiguity with
lanes=*
:
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 countbusway=lane
towardslanes=*
or not? Example: Is a road withlanes=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 countbusway=lane
forlanes=*
but some roads are tagged without including thebusway=*
lane tolanes=*
.
- 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 relatedcycleway=*
where bicycle lanes are always assumed to be near the edge, turn lanes aside). In the more extreme case, bus lane is bi-directional andbusway=*
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 withbusway:lanes=*
but this alone has overlap withbus: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 alternativeslanes:bus=*
andbus:lanes=*
for quite a while. In fact, most use ofbusway=*
is already combined withbus:lanes=*
which further suggests that one tagging style can be represented with the other. The only justification to usebusway=*
at all is for backward compatibility but the other methods also have been long established and up to date tools take care of them.
- For
busway=opposite_lane
: All the issues ofcycleway=opposite
also apply for this value:
- See Proposal:Deprecate cycleway=opposite family for more details but in short,
busway=opposite_lane
was used at a time when oneway exceptions such asoneway:bus=*
andoneway: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 butbusway=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 deprecatingbusway=*
. - 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: Opposite lane method: Modern Deprecated |
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= cycleway:left=share_busway cycleway:left:oneway=-1
|
highway=tertiary lanes=2 lanes:forward=1 lanes:backward=1 bus:lanes:backward= oneway=yes oneway:bus=no oneway:bicycle=no oneway:taxi= cycleway:left=share_busway cycleway:left:oneway=-1
|
Notes
- ↑
busway=lane
withhighway=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. - ↑ 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
- Rewrite
busway=*
so that its use for bus lanes is deprecated but still can be used to specifyhighway=busway
in detail - Flag
busway:left=*
,busway:both=*
,busway:right=*
,busway=lane
andopposite_lane
as deprecated and recommend to not use any more - Document
busway=opposite
for completion purposes and mark it as deprecated - Rework all the other pages on which bus lane tagging is documented to only refer to the newer tagging variants without promoting
busway=*
for bus lanes.
Further discussions
- Talk:Key:busway#Not encouraged to use this tag?
- https://community.openstreetmap.org/t/documenting-the-issues-and-history-of-the-key-busway/119685
Comments
Please comment on the discussion page or the announcement thread in Discourse.
Voting
Voting on this proposal has been closed.
It was approved unanimously.
I approve this proposal. --Supsup (talk) 11:35, 1 November 2024 (UTC)
I approve this proposal. --Jofban (talk) 11:43, 1 November 2024 (UTC)
I approve this proposal. --Robot8A (talk) 18:32, 1 November 2024 (UTC)
I approve this proposal. I'd generally recommend the
bus:lanes
scheme due to its flexibility, but even thelanes:bus
scheme is already a clear improvement overbusway
. --JeroenvanderGun (talk) 18:54, 1 November 2024 (UTC)I approve this proposal. --Emvee (talk) 16:22, 2 November 2024 (UTC)
I approve this proposal. --Rskedgell (talk) 22:36, 2 November 2024 (UTC)
I approve this proposal. Thank you for this proposal! --Dimitar155 (talk) 18:06, 3 November 2024 (UTC)
I approve this proposal. --Famlam (talk) 19:01, 3 November 2024 (UTC)
I approve this proposal. --Fabi2 (talk) 01:55, 4 November 2024 (UTC)
I approve this proposal. HellMap (talk) 18:11, 5 November 2024 (UTC)
I approve this proposal. --Local scanner (talk) 13:01, 8 November 2024 (UTC)
I approve this proposal. --ToniE (talk) 12:04, 10 November 2024 (UTC)
I approve this proposal. --Tordans (talk) 12:12, 10 November 2024 (UTC)
I approve this proposal. --Computae (talk) 10:46, 11 November 2024 (UTC)
I approve this proposal. --Supaplex030 (talk) 17:39, 11 November 2024 (UTC)
I approve this proposal. --Osmwithspace (talk) 11:43, 12 November 2024 (UTC)
I approve this proposal. --scai (talk) 12:12, 12 November 2024 (UTC)
I approve this proposal. --Heelas-uk (talk) 20:47, 12 November 2024 (UTC)
I approve this proposal. --Uboot (talk) 10:51, 13 November 2024 (UTC)
I approve this proposal. LG Dwain 17:22, 13 November 2024 (UTC)