From OpenStreetMap Wiki
(Redirected from Street)
Jump to navigation Jump to search
Logo. Feature : Highways
One example for 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.

Roads of importance not qualifying them for any of groups above, with residences along its side (or sides) should be tagged highway=residential.

Service roads (roads which specifically exist to provide access for trash collection or parking, and campground roads) should be tagged with highway=service.

highway=living_street are a special case of road, usually variant of a residential roads.

highway=track is used for roads used to access roads and fields, and not falling into any of groups above.

Roads for which the classification is not known should be temporarily tagged with highway=road until they are properly surveyed.

Pedestrianized routes, paths and cycle tracks

highway=pedestrian for pedestrian roads, often pedestrianized roads (roads which have been converted to pedestrian walkways either by physical barriers or by signage).

highway=cycleway, highway=footway, highway=bridleway imply a particular kind of traffic.

highway=path needs tags to designate what traffic is legally allowed or may be appropriate. Use access=*, bicycle=*, foot=* and other access tags.

If a pathway has been created "informally" e.g. by people walking across an open area, then informal=yes can be added to it.

Further tagging

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.

Similarly highway=proposed + proposed=* is used for proposed roads.

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). In many regions, a motorway may be named but with only the route number signposted. In that case, or in other cases where the reference is better known than any name (for example the 'A1' in the UK), it is probably better to leave off the name=* tag and put the name in official_name=* or alt_name=* (if there are multiple names). A previous name which is no longer used but may be of interest for historical mapping can be put in old_name=*.

Road names, especially highway names, may commemorate individuals. name:etymology=* and name:etymology:wikidata=* can be used to identify who.

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.

For lanes available only to public service vehicles such as buses (or taxi) in one direction use lanes:bus:forward=1, lanes:taxi:backward=1 or similar.

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.

Turning lanes can be indicated with the tag turn:lanes=*, for example turn:lanes=left;through|right

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.

Where a railway crosses a road at grade use railway=level_crossing, and use railway=crossing where a path crosses a railway.

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 and the road itself should be tagged with embedded_rails=tram. 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.

Turn restrictions

Main article: Relation:restriction

Some junctions have turn restrictions which need to be modeled for routing services to operate correctly.


See also