From OpenStreetMap Wiki
Jump to: navigation, search
Available languages — Lanes
· Afrikaans · Alemannisch · aragonés · asturianu · azərbaycanca · Bahasa Indonesia · Bahasa Melayu · Bân-lâm-gú · Basa Jawa · Basa Sunda · Baso Minangkabau · bosanski · brezhoneg · català · čeština · corsu · dansk · Deutsch · eesti · English · español · Esperanto · estremeñu · euskara · français · Frysk · Gaeilge · Gàidhlig · galego · Hausa · hrvatski · Igbo · interlingua · Interlingue · isiXhosa · isiZulu · íslenska · italiano · Kiswahili · Kreyòl ayisyen · kréyòl gwadloupéyen · Kurdî · latviešu · Lëtzebuergesch · lietuvių · magyar · Malagasy · Malti · Nederlands · Nedersaksies · norsk bokmål · norsk nynorsk · occitan · Oromoo · oʻzbekcha/ўзбекча · Plattdüütsch · polski · português · română · shqip · slovenčina · slovenščina · Soomaaliga · suomi · svenska · Tagalog · Tiếng Việt · Türkçe · Vahcuengh · vèneto · Wolof · Yorùbá · Zazaki · српски / srpski · беларуская · български · қазақша · македонски · монгол · русский · тоҷикӣ · українська · Ελληνικά · Հայերեն · ქართული · नेपाली · मराठी · हिन्दी · भोजपुरी · অসমীয়া · বাংলা · ਪੰਜਾਬੀ · ગુજરાતી · ଓଡ଼ିଆ · தமிழ் · తెలుగు · ಕನ್ನಡ · മലയാളം · සිංහල · བོད་ཡིག · ไทย · မြန်မာဘာသာ · ລາວ · ភាសាខ្មែរ · ⵜⴰⵎⴰⵣⵉⵖⵜ ⵜⴰⵏⴰⵡⴰⵢⵜ‎ · አማርኛ · 한국어 · 日本語 · 中文(简体)‎ · 中文(繁體)‎ · 吴语 · 粵語 · ייִדיש · עברית · اردو · العربية · پښتو · سنڌي · فارسی · ދިވެހިބަސް
Logo. Feature : Lanes
One example for Feature : Lanes
To tag individual lanes of a road together with their distinctive properties.

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.


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 buses (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.
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.
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.

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):

CH-Hinweissignal-Anzeige von Fahrstreifen mit Beschränkungen.svg
Without the use of default values:

Using default values:

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.


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:

Zeichen 526-31.svg

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.


The following example demonstrates tagging of a motorway. Lanes Example 2.png

  1.   lanes=3
      destination:lanes=A|A;B|B     *
  2.   lanes=3
      turn:lanes=slight_left|slight_left;slight_right|slight_right     *
  3.   lanes=3
      turn:lanes=slight_left|slight_left;slight_right|slight_right     *
      destination:lanes=A|A;B|B     *
  4.   lanes=4
  5.   lanes=4     **
  6. Upper part

    Lower part

  7. Upper part

    Lower part


* 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 recommend to split the ways only when a physical separation is present, in many regions the ways are already splitted 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. Kreuzung mit Radspur.jpg


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. See the proposal of the :lanes suffix for further explanation.

Editor support


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 road tagged with the keys turn:lanes=*, width:lanes=* and placement=*.

JOSM Style Road Attributes Example 1.jpeg

See also