From OpenStreetMap Wiki
Jump to navigation Jump to search
Public-images-osm logo.svg highway = stop
STOP sign.jpg
Used to mark stop signs Edit this description in the wiki page. Edit this description in the data item.
Group: highways
Used on these elements
may be used on nodesshould not be used on waysshould not be used on areasshould not be used on relations (except multipolygon relations)
Useful combination
See also
Status: de facto

The tag highway=stop is used to map points at which vehicles are required to stop. This includes stop signs, stop lines and (potentially) other points where a physical stop is required by law.

There are two common situations:

  1. some approaches don't stop (minor road stop);
  2. all approaches must stop (all-way stop; at cross-streets, called 4-way stops).

How to map

There have been numerous views and proposals on how to map stop signs, and different methods have coexisted so far. If we are now to distinguish minor road stops from all-way stops, give way junctions, motorway merges and uncontrolled intersections — in support of smartphone safety apps — we should try to be more consistent.

For the purposes of this article, "stop line" refers to the point at which a driver or cyclist is normally expected to stop. Depending on local laws, in the absence of a painted stop line, this point may be at the nearer edge of a crosswalk, an imaginary line where the stop sign is posted, or the nearer edge of the intersection.

Tagging minor road stops

Minor road stop

Insert a node with tag highway=stop on the approach way(s) that must stop, at the stopping point. Drivers may be required to give way (yield) whether or not a physical sign is present; but if you also want to capture the signs, you can use a traffic_sign=* tag as well. In all-way stop countries you could also add stop=minor to distinguish 2-way from 4-way stop signs.

As this minor road highway=stop node is NOT at the intersection point, we know it just shows the stop line. The roadway approaches that do not stop will have no highway=stop nodes before the conflict point. Do NOT tag the conflict points — the node(s) at which the ways intersect — with highway=stop, because not all the approaches will stop.

Since the stop line on the approach applies to only one travel direction, that direction can usually be deduced by finding the shorter distance to the priority intersection. However, a few stop signs are on 2-way streets between closely-spaced junctions, making it necessary to identify the travel direction that stops. Where needed, this can be done using direction=forward or direction=backward, relating stop direction to OSM forward/backward of the way that contains the highway=stop node.

Presently, reversing the forward direction of a segment in the Potlatch 2 editor will break the direction tag. If you still use Potlatch 2, be aware when editing to correct all relations as such, including the direction=* tag. JOSM (after release 11223) gives a warning when reversing ways with direction-dependent nodes and proposes the opposite value. iD now automatically changes these values too.


Stop directions in iD editor

About direction=*, here is how to map it correctly:

First thing to know is the direction of the path where you want to place your highway=stop.

On the picture: way direction is shown by white arrows, the direction of the way is from upper-left to lower-right. The picture shows a right-driving country, so cars stop on the white lines.

  • The stop on the left is mapped with direction=forward because if we follow the way, we can see the stop traffic sign and we must stop.
  • The stop on the right is mapped with direction=backward because if we follow the way, we have to look backward to see the traffic sign and we must not stop.

Tag the priority junction node

At major road priority junctions (which require minor roads to stop or give way), tag the intersection node(s) where traffic conflicts can occur with highway=priority, to identify the actual conflict point that is controlled by a priority rule. This will help a safety app or automated vehicle know that emerging side-road vehicles may create a hazard at that main-road junction node. Tagging the junction with highway=priority can also help eliminate directional ambiguity on the map (by identifying the actual priority intersection controlled by nearby stop or give way signs).

Tag priority road on the ways

Main road ways that do not stop can be further emphasized using priority_road=*; either (priority_road=designated or priority_road=yes_unposted). The designated value is used in countries that sign some priority roads (main roads) with a yellow diamond with a black border on a white surround.

All-way stop

a question mark

This article or section contains questionable, contentious or controversial information. See the talk page for more information.
Requirement duplicating feature on intersection and stop line.
All-way stop

All-way stops should ALWAYS be shown using highway=stop at the intersection node. If you also want to add the individual stopping points, say for use by a safety app (so that the exact stopping points have been recorded) do NOT remove the intersection node highway=stop, which confirms that this junction is an all-way stop.

If you want to further confirm that this is an all-way stop, you can add stop=all to the intersection's highway=stop node. However, tagging minor road stop junctions achieves the same distinction, and also warns drivers crossing the conflict point to look out for emerging side road traffic.

If you want to show that the stop line highway=stop nodes are marked with traffic signs, use the traffic_sign=* tag to indicate a physical sign, painted line or an implied stop such as a driveway.

All-way stop

Flashing intersection control beacons are tagged as traffic_signals=blinker or traffic_signals=stop on the intersection node (not at each stop line).


On many rural roads in the United States, StopExcept Right Turn indicates that a vehicle approaching the intersection must stop if turning left or continuing straight ahead but must not stop if turning right. [1] Typically, the sign is posted at a T-intersection between two two-lane roads where most traffic is expected to turn. [2] There are multiple experimental approaches to tagging these intersections:

Earlier mapping proposals



In the USA, nearly 700,000 police-reported motor vehicle crashes occur annually at stop signs, and about one-third of these crashes involve injuries. If we successfully mapped all stopping points, nav systems or safety apps could warn drivers to stop.

The UK scrapped its "halt" signs in the 1960s, replacing them with "Give Way" (Ireland/US: "Yield", highway=give_way) signs. Stop signs now require special authorization, and are only used at very few, especially hazardous junctions. Adoption of "Give Way" caused no increase in accidents. Since then, in fact, UK accident rates have fallen well below their US counterparts.

In the all-way stop countries, crashes occur at minor road stops because drivers pull out in front of moving traffic, wrongly believing it will stop. Therefore, we need to distinguish all-way stops from minor road stops so safety apps can tell drivers that the other road does not stop.

Give way to the right countries in mainland Europe such as France and Belgium also had problems with side-road drivers emerging into fast traffic. To mitigate that, some minor road were marked as Stop or Give Way, and a new yellow diamond sign priority_road=designated was introduced to label priority roads that don't stop. So, of course, nav systems and safety apps must distinguish priority roads from the minor roads that stop or give way.

Potential goals in mapping stops for smartphone safety apps include alerting drivers on the main road when an approaching side-road driver fails to slow; warning minor road drivers who do not slow as they approach a stop or give way line; or simply making a subtle (Pavlovian) sound as each yield point is approached. Some defensive drivers might welcome such GPS app support. Fully automated vehicles might also benefit from an unambiguous representation of each junction's priority rules.


Popular mobile navigation applications annotate stop signs along the route on the map, helping users distinguish between major and minor intersections. Some applications measure the upcoming distance to a maneuver as a number of blocks, for consistency with colloquial American English, for example "In three blocks, turn left." These voice instructions ideally account for the difference between controlled and uncontrolled intersections – that is, whether the user encounters a stop sign or traffic signal at the intersection.

Possible mistagging

If you know places with this tag, verify if it could be tagged with another tag.
Automated edits are strongly discouraged unless you really know what you are doing!
If you know places with this tag, verify if it could be tagged with another tag.
Automated edits are strongly discouraged unless you really know what you are doing!

See also

  • highway=give_way - Used to mark give way (also known as yield) signs or markings
  • priority_road=* - to tag the priority road a give way sign might warn for at the intersection