|Feature : Highways
|The highway=* tag is used for roads, paths and cycletracks and other recognised routes on land.
A highway in OpenStreetMap is any road, route, way, or thoroughfare on land which connects one location to another and has been paved or otherwise improved, including by mere trampling by a sufficient number of humans, to allow travel in some way, including by motorised vehicles, cyclists, pedestrians, horse riders, and others (but not trains – see Railways for further details).
Note that in North American and Australian English, the term highway frequently implies a major road such as a controlled-access highway or an arterial road. Don't let that confuse you, the term is used with its British English meaning within OSM.
Around the world highways are classified in different ways using different terms. OpenStreetMap attempts to apply a single classification system to all local conditions. For reasons of origin, the terms used within OSM are British English, resulting in an interstate highway in the USA and an Autobahn in Germany being tagged as a 'motorway' along with its British equivalent. Highway tag usage provides more general information on how to interpret road classifications to local conditions and Highway:International equivalence provides guidance on mapping in different countries/territories.
- See also Highway:International equivalence, Recommended Tagging Scheme By Country, OSM tags for routing/Access-Restrictions
Roads and tracks
The value of the highway tag should be applied without blindly following the official road classifications made by the governmental authorities on road networks and route systems. In many countries a particular section of road may form a part of many different routes within the same or different route networks, and a particular route may have road segments with different attributes and therefore different highway tags. Refer to country specific guides for tagging routes and networks.
For OSM, roads in general are tagged based on its importance within the road network: highway=trunk, highway=primary, highway=secondary, highway=tertiary, highway=unclassified and *_link variants - highway=trunk_link, highway=primary_link, highway=tertiary_link. highway=unclassified is a bit special here, given the confusing name (it is not for use on roads that are not classified) and has no link variant.
Note that road of given type is expected to have similar importance in different part of road, but may have drastically different quality. highway=primary will have drastic differences in quality between Siberia and Germany.
Motorways are tagged with highway=motorway and highway=motorway_link and are special as they are legally defined (sign posted) which usually excludes slow traffic and at grade intersections and implies some minimal road quality is required, not just a high importance.
Pedestrianized routes, paths and cycle tracks
The following tags are all optional – please do not be intimidated as they are very rarely all populated by the initial mapper. If you are mapping a new area then you may wish to limit yourself to capturing the road geometry, junctions, the road classification and road names. You, or someone else, may later add additional information.
Roads under construction and proposed roads
highway=construction is used to mark road under construction and not yet open to traffic, with construction=* specifying type. Note that it may range from construction=motorway to construction=cycleway. Roads undergoing reconstruction, with long term closure, are often tagged with highway=construction. Using lanes=*, access=*, maxspeed=* and other relevant tags to mark the temporary conditions due to the road works is also feasible and preferable if road is partially open. In both cases - revisit the situation when the construction is complete.
This topic is covered at Comparison of life cycle concepts#<key> = <status> + <status> = <value>.
Names and references
Use the name=* and/or the ref=* for each section of the road (way) which has a name or reference. If a stretch of highway has multiple reference numbers, they should be semicolon-delimited. (examples: ref=I 39;US 51, ref=US 51;WI 54). If a road has two names, the less common one can be put in alt_name=*; in addition, where a road is now much more generally known by its reference (for example the 'A1' in the UK), but that it also has a current legal name for historical reasons if it probably better to leave the name field blank and put the name in alt_name which means that it is much less likely to be rendered. A previous name which is no longer used but may be of interest for historical mapping can be put in old_name=*.
Speed limits and other restrictions
maxspeed=*, maxheight=*, maxwidth=* and maxweight=* can be used to add detail about a road. Maxspeed generally applies to all public roads. Maxheight and maxwidth often apply to a road going under a bridge and maxweight to a road going over a bridge. Note that each tag should be associated with the way to which the restriction applies and can either be attached to the way itself or to a node along the way.
Use foot=no if pedestrians are not allowed and bicycle=no if bicycles are not allowed. If only buses are allowed then access=no together with bus=yes would be appropriate. The hov=* tag can be used to indicate the minimum number of people required in a vehicle to use the facility. See the access article for a much more detailed description of how to describe other restrictions relating to use of the road or path.
Surface, width and lighting
The surface=* tag can be used to identify the surface covering of the carriageway. For unpaved roads the relative quality of road, and in particular tracks can be indicated by the tracktype=* tag, with values ranging from grade1 (the best) to grade5 (the worst). width=* tag may be used to indicate the width of the carriageway in meters. The traffic_calming=* tag can be used to indicate either that a section of road is traffic-calmed or the position of an actual feature. This is normally only used for narrow roads. If the road is lit then it is useful to add lit=yes and lit=no if not. For the most detail one can add individual lamp posts using highway=street_lamp.
Parking along the street can be mapped using the street parking schema (parking:left=*, parking:right=* or parking:both=* and other related tags to specify e.g. the orientation of the parked vehicles and parking restrictions like whether there is a fee, a maximum period of time you are allowed to park there, no parking or no stopping restrictions, restrictions on access or for specific transport modes etc.).
Number of lanes
- Main article: Key:lanes
The number of lanes available to general motorised traffic should be given using lanes=*. For a detailed description of what kind of lanes should be counted, see the main article. If the number of lanes is not equal in each direction for a two way road then use lanes:forward=* or lanes:backward=* to indicate the number of lanes in one of the directions in addition to the total number of lanes. The key lanes:forward=* hereby refers to lanes which direction is equal to the direction of the OSM way, and lanes:backward=* to the opposite direction.
Layout and individual properties of lanes
- Main article: Lanes
The properties of individual lanes can be tagged with the lanes suffix to any other meaningful key. For example maxspeed=80 means a speed limit of 80 km/h on all lanes, while maxspeed:lanes=100|80 means a speed limit of 100 km/h on the left lane and 80 km/h on the right lane.
Cycle lanes and tracks
The tag cycleway=* can be used to describe any cycle lanes constructed within the carriageway or cycle tracks running parallel to the carriageway.
sidewalk=* is used to give information about footways (also called pavements/sidewalks) which may, or may not be associated with the highway.
Crossing points and barriers
crossing=* can be used to indicate a place where there facilities are provided to assist people crossing the road. The tag should be added to a node at a suitable point along the road, with crossing=* being available to describe the type of crossing using one of the following values: traffic_signals, uncontrolled, island or unmarked. Additionally, the foot=*, bicycle=*, horse=* tags can be used to indicate which modes can legally use the crossing. The supervised=yes tag can be used to indicate that the crossing is supervised at busy times.
Where usage of a highway is restricted by some physical barrier this can be indicated by the addition of a node tagged with barrier=* with a suitable value (for example: border_control, cycle_barrier, cattle_grid, gate, bollard, stile, toll_booth or turnstile). An access=* tag can be added to provide information about which modes of transport are affected by the barrier. For a toll-booth the fee=* tag can be used for provide more information.
For a place where a river or stream crosses a road or path without a bridge use ford=*. For a narrow watercourse indicated using a single way, a node should be used. For a wide river denoted by the area waterway=riverbank, the 'ford' tag should be applied to the way spanning the full length of the road as it crosses the river.
Buses and trams
Bus stops along the route should be tagged with highway=bus_stop or using the newer public_transport=platform which should be positioned to the side of the carriageway where passengers wait. A tram running within the main carriageway should be tagged with railway=tram on the same way as the road. If the tram runs into a separate right-of-way to the side of the carriageway or within the central reservation then create a separate way also tagged using railway=tram.
Bridges and tunnels
Ways on bridges and in tunnels should be indicated by splitting the way where the bridge begins and ends, and marking the middle way as bridge=yes/viaduct or tunnel=yes. There is some debate about how to name bridge and tunnel segments along a road. One approach is to use bridge:name=* and tunnel:name=* another is to use the proposed Bridge/tunnel relation and include the name of the bridge within that relation. For mapping bridges, see man_made=bridge.
The layer=* tag should generally be used on one of the ways that cross using a bridge or tunnel. A bridge will commonly be tagged with layer=1 and a tunnel with layer=-1 although where the junction is more complex more layers are required. Where a road is above or lower than ground level a section may be tagged with embankment=* or cutting=*.
A Carriageway (Am.: roadway) consists of a width of road on which a vehicle is not restricted by any physical barriers or separation to move laterally.
- A road consisting of one carriageway (bidirectional or one-way) is mapped using a linear OSM-way.
- A road consisting of more than one carriageway is mapped using a separate OSM-way for each of these carriageways. Typically these are one-ways as dual carriageways.
- Main article: Junctions
A simple junction between a number of roads can be formed using a shared node. If the junction has traffic signals tag the node with highway=traffic_signals. Mini-roundabouts, indicated by paint on the road, are described as a node tagged with highway=mini_roundabout. Larger roundabouts which probably have grass or planting in the middle as described as a circular way tagged with junction=roundabout. A roundabout on a major road may include bridges and should therefore be split into a number of ways, with each element tagged with junction=roundabout. Larger interchanges are normally constructed using multiple highway elements and appropriate associated bridge and layer tags.
- Main article: Relation:restriction
- area:highway: Proposal for mapping streets as areas
- highway=junction: Proposal for mapping the extent of junctions
- Highway tagging samples/urban
- Highway tagging samples/out of town
- Statistics about tagged roads (length for each country with history, possibility to display info about specific road class)