From OpenStreetMap Wiki
Jump to navigation Jump to search
A tram street crossing and pedestrian street crossing in Tallinn.

A crossing is a junction between two paths or highways intended for different modes of transportation, potentially requiring traffic to stop to let other traffic pass. Although intersections generally do not have explicit tags, several kinds of crossings have the explicit tags below plus a variety of additional tags describing the crossing.


In American English, a pedestrian road crossing is called a crosswalk if it is either marked or signalized.

Basic required tags

Use the following tags to indicate the location of a crossing:

If a… Crosses a… Tag the intersection node Tag the crossing way
Footway Cycleway, bridleway, path, road, or track highway=crossing[1] footway=crossing[2]
Footway Railway railway=crossing[3] footway=crossing
Cycleway Bridleway, path, road, or track highway=crossing cycleway=crossing[2]
Cycleway Railway railway=crossing[3] cycleway=crossing
Bridleway Footway, cycleway, path, road, or track highway=crossing
Bridleway Railway railway=crossing[3]
Path Road or track highway=crossing path=crossing
Path Railway railway=crossing[3] path=crossing
Road or track Railway railway=level_crossing[4] N/A
Highway Aeroway aeroway=aircraft_crossing N/A
Railway Aeroway aeroway=aircraft_crossing

There are ongoing proposals for other kinds of crossings:

Traffic control

Street crossings

Street crossings are classified by the presence of traffic control devices regulating the movement of traffic at the crossing. Tags for classifying crossings have historically grown organically, but there were two formal attempts at standardizing the tags. All of these tagging schemes are in widespread use in OpenStreetMap but have incompatible semantics:

  • By 2008, the predominant tagging scheme set crossing=* to a set of mostly animal nicknames corresponding to specific types of pedestrian crossings in the United Kingdom and some Commonwealth countries. These tags made no provision for crossing types found in other countries. In some cases, mappers have diluted the meaning of these terms to cover other configurations.
  • A 2008 proposal moved the zoo animals to a separate crossing_ref=* key and uses crossing=* to indicate the degree of traffic control, making some UK-centric assumptions about which kinds of traffic control devices go together. This scheme differed significantly from preexisting usage, due to concerns about the eccentric UK terminology.[5] Despite being approved in a relatively small vote, it was ignored by many mappers, who continued to use the crossing=*-only scheme.
  • A 2018 proposal, which was expanded the following year, streamlines crossing=* to indicate only whether the crossing is marked, relegating signalization to an orthogonal crossing:signals=* key, by analogy with the subkeys used at railroad crossings. It also resolved misleading terminology associated with the 2008 proposal.

Popular editors have implemented a mix of these schemes, often incompletely.[6] Mappers in some regions prefer one scheme over another. As of June 2022, relatively few renderers and routers are known to make any distinctions based on these tags.[7]

Some schemes are able to express more common configurations of crossings than others:

How to tag common street crossing configurations according to various established schemes
Road markings Pedestrian signals Cyclist signals Equestrian signals UK-centric ad-hoc usage Approved 2008 proposal 2018/2019/Approved 2022 proposal Newer
Yes Yes Yes No crossing=toucan crossing=traffic_signals
Yes Yes No Yes N/A crossing=traffic_signals
Yes Yes No No crossing=pelican crossing=traffic_signals
Yes No No No crossing=zebra[9] crossing=uncontrolled
Yes No No No crossing=marked crossing=uncontrolled crossing=marked
crossing:markings=not zebra
No Yes No No N/A N/A crossing=unmarked
No No No No N/A crossing=unmarked[10] crossing=unmarked

Railroad crossings

Railroad crossings use subkeys of crossing=* to indicate the presence of certain warning devices:

An uncontrolled railroad crossing – that is, one lacking any of these warning devices – is sometimes tagged level_crossing=uncontrolled. Formerly, level_crossing=* paralleled the 2008 proposal for street crossing classification; however, most of its values are now deprecated.

See also

  • crossing=no – indicates the absence of a crossing where one would otherwise be implied by highway geometry
  • ford=yes – indicates the location of a ford, where a non-waterway crosses a waterway
  • hazard=animal_crossing – indicates an area where animals are known to cross the road, creating a collision hazard
  • man_made=wildlife_crossing – not a crossing in the sense of conflicting traffic, but rather a kind of grade separation

Notes and references

  1. Footway–cycleway intersections in some regions, such as the Netherlands, are not considered crossings because of local right-of-way rules.
  2. 2.0 2.1 Where one kind of recreational route crosses another, such as a crossing between a cycleway and bridleway, the way that is tagged as a *=crossing depends on local rules about right of way.
  3. 3.0 3.1 3.2 3.3 railway=tram_crossing is an alternative in cases where the railway is a tramway (railway=tram).
  4. railway=tram_level_crossing is an alternative in cases where the railway is a tramway (railway=tram).
  5. Earl, David (August 1, 2007). “Pedestrian crossings and barriers”. OSM-talk mailing list. 
  6. Slootweg, Sven (February 21, 2022). “Should iD be tagging crossing=uncontrolled instead of crossing=marked?”. openstreetmap/id-tagging-schema. Retrieved March 2, 2022. 
  7. “crossing: Projects”. Taginfo. Retrieved March 2, 2022. 
  8. In 2016, the UK began phasing out pelican crossings in favour of puffin crossings, which are tagged crossing_ref=puffin.
  9. Originally, the value zebra entailed a specific pattern that in the UK is only found at unsignalled crossings, never at signalized crossings. However, in colloquial usage elsewhere, it has come to mean any kind of road marking.
  10. crossing=unmarked was not included in the original 2008 proposal, but it was approved for unmarked crossings as part of a 2011 proposal about sidewalks. It became popular for unmarked, unsignalled crossings as part of a crossing=traffic_signals/uncontrolled/unmarked tagging scheme. The 2018 proposal for crossing=marked reaffirmed the broader, approved definition of crossing=unmarked that also applies to unmarked, signalized crossings.