Lanes
Feature : Lanes |
Description |
To tag individual lanes of a road together with their distinctive properties. |
Group |
Tags |
lanes=*, turn:lanes=*, destination:lanes=*, access:lanes=*, ...
|
The subkey *:lanes=* can be used to tag individual lanes of a road.
The similar main key lanes=* counts the number of traffic lanes.
Lane-specific information can be expressed on a way by suffixing the key with *:lanes=*. This suffix is applicable to any existing <key>=<value> tag pair. The value of that tag then contains the values for each lane separated by a | (vertical bar) in left-to-right order as viewed in the respective driving direction of those lanes. If the value of a specific lane is left blank, the (possibly assumed/implicit) value of the main key without *:lanes=*-suffix applies (the so called default value).
In the common case of two driving directions either *:forward=* or *:backward=* is added to the end of the key; i.e., <key>:lanes:forward describes the properties of the lanes in the same direction as the osm-way, whereas <key>:lanes:backward described the properties of the lanes in the opposite direction of the osm-way.
Please be aware that this extension covers all kinds of lanes for all kind of vehicles and is not restricted to motorized traffic.
Examples
In principle every tag used to describe properties of a road can be extended by the *:lanes=* suffix when its value depends on the lane. Following list gives an overview of potentially useful combinations and a short description when they might be needed:
Road property | Lane specific key | Description |
---|---|---|
access=* | hgv:lanes=*, psv:lanes=*... | Useful if access depends on the lane: For example lanes can be restricted to public service vehicles (psv:lanes ) or forbidden for heavy good vehicles (hgv:lanes ).
|
maxspeed=* | maxspeed:lanes=* | Can be used for roads where the maximum allowed speed depends on the lane. See example below. |
turn=* | turn:lanes=* | Allows description of designated turn lanes or which lanes will merge in the direction of travel. See detailed examples below. |
change=* | change:lanes=* | Allows description of possible lane changes using the lane marking on the road. |
minspeed=* | minspeed:lanes=* | Useful for roads where some lanes require a minimum speed or where lanes have different minimum speed. |
surface=* | surface:lanes=* | Lane dependent surfaces, for example if there is cobblestone on the outer lane |
destination=* | destination:lanes=* | While the road specific key describes the direction of the highway by using the name of the city the highway is heading to, the destination:lanes allows tagging of cities when sign-posted for individual lanes. See destination=* for examples.
|
width=*, maxwidth=* | maxwidth:lanes=*, width:lanes=* | Where necessary, the width of lanes can be tagged. As usual maxwidth:lanes=* would describe a legal width restriction and width:lanes=* the actual width of a lane. |
maxheight=* | maxheight:lanes=* | A height restriction may vary from one lane to another if the road passes beneath an overpass that is inclined or arched. |
hov=* | hov:lanes=* | If one or more lanes of the road are restricted to high-occupancy vehicles (typically vehicles with 2+ occupants, although this varies by jurisdiction). Most useful if entrance/egress is permitted at any point along the route; if entering or exiting the HOV lane(s) is only permitted at certain locations, modeling the HOV lane(s) as separate ways is preferable. |
payment:*=* | payment:<payment_method>:lanes | In cases where a road toll has a special lane which segregates drivers by a certain payment method, it's possible to use the lanes scheme.
For example: a toll booth area with several normal lanes (where a driver must pay with cash or a card) and a special lane, usually on the far right or far left, where it's not needed to stop nor pay on the spot. One of such cases happens in Portugal, with Via_Verde [1]. In such cases, the following tag can be used: payment:via_verde:lanes=no|no|only. (this means the highway has three lanes and the far right lane only allows drivers that are going to pay with Via Verde. |
Mapping
A highway's ways should be mapped and split exactly where the extent of a number of lanes becomes available.
The way tagged with lanes from a way approaching or leaving an intersection node should extend all the way to the intersection node, even though the physically marked lanes do not because it is an intersection.
Street
Here, a residential street transitions from 2 lanes on the right to 3 lanes approaching the intersection.
There is a turn lane transition area marked with dashes where the lane begins to form, however, since it is not fully formed, the way that includes three lanes does not extend to include it.
The way only extends to where the full 3 lanes are present and available to use. In this example, this is also marked by start of the solid line dividing the turn lane and the through lane.
Complex street
Example will be added.
Intersection of dual carriageways
Example will be added.
Parallel highway and highway link
Example will be added.
Different maxspeed per lane (with/without default values)
A simple lane dependent maxspeed
example with road sign (one-way street and a general speed limit of 100 assumed):
Without the use of default values:
lanes=3 oneway=yes maxspeed:lanes=100|100|80 |
Using default values:
lanes=3 oneway=yes maxspeed=100 maxspeed:lanes=||80 |
Considering backward compatibility it might be preferred to tag this using default values.
Two driving directions
In the common case of two driving directions either *:forward=* or *:backward=* is added to the end of the key.
lanes=6 lanes:forward=3 lanes:backward=3 hgv:lanes:forward=no|yes|yes hgv:lanes:backward=no|yes|yes
This is a road with three lanes in each direction and heavy good vehicles are prohibited on the leftmost lane in each direction.
The lanes are viewed in the respective driving direction; i.e., hgv:lanes:forward=* describes the lanes in the same direction as the osm-way. The first lane-value refers to the leftmost lane in this direction. Whereas hgv:lanes:backward=* describes the lanes in the opposite direction of the osm-way.
Minimum speed
Road with a sign-posted minimum speed, which applies to one lane only. Can be tagged as:
lanes=3 lanes:forward=2 lanes:backward=1 minspeed:lanes:forward=50| |
Please note the final |
character in the value of minspeed:lanes:forward=*: Because the right-most lane has no minimum speed, no value should be tagged after the lane separator.
Motorway with lanes and destinations
The following example demonstrates the tagging of a motorway.
Left part: lanes=3 Right part: lanes=1 | |
Left part: lanes=2 Right part: lanes=2 turn:lanes=none|merge_to_left | |
lanes=4 (**) change:lanes=not_left|not_right|not_left|not_right | |
lanes=4 turn:lanes=slight_left|slight_left|slight_right|slight_right destination:lanes=A|A|B|B | |
lanes=3 turn:lanes=slight_left|slight_left;slight_right|slight_right(*) destination:lanes=A|A;B|B (*) | |
lanes=3 turn:lanes=slight_left|slight_left;slight_right|slight_right (*) | |
lanes=3 destination:lanes=A|A;B|B (*) |
* These tags show how to add more than one value to a single lane, by separating those values with a ; (semi-colon).
** There is no physical separation between the upper two lanes and the lower ones, just a double solid line. While the editing standards recommends splitting the ways only when a physical separation is present, in many regions the ways are already split in case of a legal separation like a double solid line. In such a case both resulting ways should be tagged with lanes=2.
Crossing with a designated lane for bicycles
The following example demonstrates tagging lanes with different kinds of traffic.
lanes=3 turn:lanes=left|through|through|right vehicle:lanes=yes|yes|no|yes bicycle:lanes=yes|no|designated|yes cycleway:lanes=no|no|lane|no |
Some more examples can be found on this cycling page (German language).
Pay attention to the value of the lanes=* key. The number of lanes is referred to the lanes available to the traffic using the main highway=* key, in this example and also by definition of lanes=* key motorized traffic, what excludes bicycle lanes. See the proposal of the :lanes suffix for further explanation.
Note: Access tags, like bicycle:lanes=*, depend on the country and other circumstances:
bicycle:lanes=yes|no|designated|yes value is result of fact that in this case bicycles are obligated to use bicycle lane in certain circumstances (e.g. as long as cyclist is not turning left or right or the cycle way is obstructed or otherwise not practicable, or the bike is too wide (e.g. trailer) and would encumber other cyclists). In other countries where use of bicycle lane is not fully obligatory for cyclists, like in Germany, tagging may be bicycle:lanes=yes|yes|designated|yes.
Note: adding also cycleway=lane would be fine and useful in this case.
Designated Motorcycle Lanes
When tagging lanes you should only be counting lanes=* that are wide enough to fit a car (if it could fit a smart car or it's borderline then most likely you should still count it.)
|___1___|___2___|_3_|_4_|
1 and 2 can both take motor_vehicles, but lanes 3 and 4 cannot.
Motorcycles can use lanes 2, 3, and 4.
Lanes 3 and 4 are designated as motorcycle lanes.
lanes=2 motorcycle:lanes=no|yes|designated|designated
If there is additional signage indicating that the left two lanes are for motor vehicles and the right two are not.
motor_vehicle:lanes=yes|yes|no|no
Editor support
JOSM
The style Lane and Road Attributes visualizes, amongst others, a variety of lane-dependent tags directly while editing, and also detects some common tagging mistakes like e.g. inconsistent number of lane-dependent values. The image below shows a oneway=yes road tagged with the keys turn:lanes=*, width:lanes=* and placement=*.
The preset Lane attributes helps finding and remembering all these tags.
See also
- lanes=* for tagging the number of traffic lanes
- change=* for the lane marking painted on the ground
- lane_markings=no for tagging that lanes are not painted or otherwise marked
- turn=* for turn lanes
- destination=* for describing the direction of the highway
- placement=* for declaring the centre lane in cases of unevenly spread lanes like an additional turn lane on one side
- Connectivity relations for connecting lanes between road segments.
- The proposal for the :lanes suffix
- Bus lanes