From OpenStreetMap Wiki
Jump to navigation Jump to search

Properties, limitations and quality of a road are defined by a variety of tags. This page is supposed to give a comprehensive overview of existing tags. For a complete description and definition of the tags mentioned, please refer to their respective Wiki pages.

Restrictions and properties may vary

In many cases, properties are not constant over time and space, but vary depending on several aspects. To give a few examples:

  • Can be different depending on the driving direction
  • Can be different depending on the lane (e.g. destinations or turn lanes)
  • Can be different on both sides of the road (e.g. sidewalks)
  • Can be different for different kinds of traffic (reduced maxspeed for trucks)
  • Can be different depending on the time of day (e.g. no trucks allowed during the night)
  • Can be different from the start to the end of a way (e.g. a way getting broader gradually)

All this can be expressed by adding suffixes to the base key. In case there are several suffixes needed, the order has never been fixed formally, but one scheme is used in most cases:

key [:left|:right|:both] [:subkey] [:hgv|:bicycle|...] [:lanes] [:forward|:backward|:both_ways] [:conditional] [:start|:end] = *

key - side - subkey - mode - lanes - direction - condition - position

Here, brackets refer to optional components of the tag while pipes ('|') denote options to choose from. Please note that of all the possible combinations, not all make sense. For example, Key:maxspeed will never be used with a :start suffix because it won't change gradually along a way. There is one notable exception from this rule: 'parking:lane:left:...' and 'parking:condition:right:...' (although one might argue that in this case the "key" is 'parking:lane' and 'parking:lanes').

The possible combinations (or to be more precise, the ones currently in use) are marked in the tables below using these abbreviations:

Column Suffix Description
mode :hgv, :bicycle, :psv ... can depend on the mode of transportation
lanes :lanes can vary from lane to lane
f/b :forward, :backward, :both_ways can vary depending on the direction
l/r :left, :right, :both can be different sides of the road
cond :conditional can vary with time, vehicle or weather
s/e :start, :end can be different at the start and end of a way

Basic Properties

Schlüssel mode lanes f/b l/r cond s/e Beschreibung
highway=* - - - - - - Classification of the road
oneway=* X - - - X - oneway streets
lanes=* X - X - X - Number of lanes [prop 1]
surface=* - X X - - - type of the surface
smoothness=* - X X - - - smoothness of the surface
bridge=* - - - - - - bridge
tunnel=* - - - - - - tunnel
  1. Only full-width lanes are counted, lanes for e.g. bicycles are not included. If lanes for special types of vehicles are present, this tag can be used to denote the number of lanes of this type, but can not be used to describe the layout of lanes or wether some types of vehicles share lanes. This should be stated explicitly using the :lanes scheme.

Names and Reference Numbers

Key Description
name=*, alt_name=*, official_name=*, loc_name=* Name of the road, alternative, official or local name.
ref=*, int_ref=*, old_ref=* Reference numbers (national, international, revoked)

All names can be given in several languages (as long as these names actually are used) by using the scheme for multilingual names, e.g. name:XX


Key mode lanes f/b l/r cond s/e Description
width=* - X X - - X Width of the full road or individual lanes
placement - - X - - X If the OSM way is not following the middle of the road (useful e.g. if the number of lanes change at an intersection)

Bridges and Tunnels

Names or properties specific to bridges and tunnels, can be added using subkeys: To name a few: bridge:name=*, tunnel:ref=*, bridge:operator=*. Also have a look at the possibilities to map physical properties of bridge=* and tunnel=*.



Key mode lanes f/b l/r cond s/e Description
access=* X X X - X - rules for accessing the road [reg 1]
motorroad=* - - X - - - road limited for use by motorized vehicles above a certain size
maxspeed=* X X X - X - maximum speed limit
maxspeed:variable=* X X X - X - The maxspeed is variable and changes frequently
minspeed=* X X X - X - minimum speed limit
maxwidth=* X X X - X - Maximalbreite
maxlength=* X X X - X - maximum width of vehicles
maxheight=* X X X - X - maximum height of vehicles
maxweight=* X X X - X - maximum actual weight
maxaxleload=* X X X - X - maximum axle load
zone:traffic=* - - - - - - traffic rules, e.g. rural or urban area
zone:maxspeed=* - - - - - - maxspeed zones, used mainly in FR and DE
  1. As an exception to the general rule, the 'access:' part of the key is omitted. E.g. hgv instead of access:hgv

Markings and Traffic Signs

Key mode lanes f/b l/r cond s/e Description
turn=* X X X - - - Turn lanes
overtaking=* X X X - X - Overtaking[mark 1]
change:lanes=* - X X - - - Changing of lanes[mark 2]
traffic_sign=* - X X - - - Traffic signs - typically the official number of the sign is used
traffic_calming=* - ? ? ? - - Traffic calming like islands or tables. traffic_calming:width,traffic_calming:height or traffic_calming:surface can be useful subkeys to add details.
  1. Aside of overtaking:backward=no the tag overtaking=forward is used to note that overtaking is allowed in one direction only
  2. Please note the difference to overtaking=* - depending on legislation, overtaking may be allowed if you don't have to leave your lane, even if changing lanes is forbidden

The tag traffic_sign=* is very useful in cases you don't know the precise mapping of some rule - just add the reference numbers of the signs to allow other mappers to add the proper tags later.

Turn Restrictions



Destination signs along roads and paths usually have a complex layout including city names, street references, directions, symbols and colors. All this can be mapped using various keys in the destination=* name space. As this is an extensive topic on its own, please refer to

Rendered destination sign based on OSM tagging using German default coloring scheme.
  • Destinations can be tagged on the roads leaving an intersection, or on the roads leading towards an intersection using the :lanes suffix
  • If there are several destinations given, they can be tagged separated by semicolon
  • Several of these keys can only be found in a proposal, but are in use since years
Key mode lanes f/b l/r cond s/e Description
destination=* X X X - ? - the destination itself
destination:lang:<language code>=* - X X - ? - e.g. :lang:de or :lang:en if the destination is given in several languages
destination:ref=* - X X - ? - Reference number of a road
destination:int_ref=* - X X - ? - international reference number
destination:country=* - X X - ? - Destination country[dest 1]
destination:symbol=* - X X - ? - symbols
destination:colour=* - X X - ? - the background color of the sign or individual entries
destination:ref:to=* - X X - ? - reference number of a road to be reached after travelling some distance [dest 2]
destination:symbol:to=* - X X - ? - symbol accompanying a distant destination, see comment on destination:ref:to
destination:to=* - X X - ? - name of a distant destination, see comment on destination:ref:to
  1. Use the same abbreviations for countries as they are used on license plates
  2. read as: "you have to take this turn, travel along another road for some kilometers to finally reach the road with the indicated reference

At the side of the road

Footways and Cycleways

Key mode lanes f/b l/r cond s/e Description
sidewalk=* X - X[sidewalk 1] X - - Sidewalks [sidewalk 2]
cycleway=* X - - X - - Cycleways
sidewalk:width=*, cycleway:width=* - - - X - X Width of the way
sidewalk:surface=*, cycleway:surface=* - - - X - - Surface
sidewalk:smoothness=*, cycleway:smoothness=* - - - X - - Smoothness
cycleway:buffer=* - - - X - - Buffer space
cycleway:oneway=* - - - X - - to mark bidirectional use
sidewalk:traffic_sign=*, cycleway:traffic_sign=* - - - X - - for the actual traffic signs
  1. Useful if a sidewalk can be used by bicycles in opposite direction, e.g. sidewalk:left:bicycle:backward=yes
  2. If bicycles are allowed, access rules can be tagged like sidewalk:left:bicycle=yes

In the case of cycleways in the form of lanes of a road the tagging with :lanes can be used in parallel. This is the only way to tag the precise relation of the lanes for different types of vehicles. For example, there might be a cycle lane in between the lanes for through traffic and the right turn lane.

Bus Stops

Some bus stops use a bay for the busses to stop to let other traffic pass. These can be added using the bus_bay=* key.

Shoulders and Verges

The tag shoulder=* (emergency stopping lane or additional place for overtaking slow vehicles) and verge=* (green areas along ) are used to tag the immediate surroundings of a road.

Key mode lanes f/b l/r cond s/e Description
shoulder=* X - - X - - shoulders, side lanes [shoulder 1]
shoulder:width=* - - - X - X width of the shoulder
shoulder:line=* - - - X - - The kind of separation to the road
shoulder:surface=* - - - X - - The surface
shoulder:smoothness=* - - - X - - The smoothness
  1. access rights can be tagged e.g. as shoulder:left:access:foot=yes

Parking along a road

The parking spots along roads are tagged using the parking:lane syntax. This syntax is quite different to that used for other properties of roads. Please refer to its own wiki page.