User:Mueschel/PropertiesOfRoads
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 |
- ↑
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
Geometries
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=*.
Rules
Restrictions
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 |
- ↑ As an exception to the general rule, the 'access:' part of the key is omitted. E.g.
hgv
instead ofaccess: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.
|
- ↑ Aside of
overtaking:backward=no
the tagovertaking=forward
is used to note that overtaking is allowed in one direction only - ↑ 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
t.b.d.
Destinations
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
- 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 |
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 |
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 |
- ↑ 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.