Proposal:Turn hints

From OpenStreetMap Wiki
Jump to navigation Jump to search

This is a proposal for relations to help routing software determine what "kind" of turn a turn is.

Problem: Some intersections are easy to understand. If there are only two/four ways and they intersect at nearly 90-degree angles, we can safely call them "left", "right", and "straight". Example

Some intersections, however, are no so clear. What's the difference between a "fork" and a "slight left/right"? How sharp does a turn have to be to be a "sharp left/right"? What if it isn't clear which way "straight" is? Knowing this involves some local knowledge, and currently we have no way to capture that in the map.

Proposed solution: Create a "turn_hint" relation which tells us how to describe a turn from one way onto another. Many intersections will not need this, because we can make educated guesses that are correct most of the time. But in certain cases, it's good to record this, as it captures local knowledge about an intersection that can't be gained from an overhead view.

Examples: This intersection of I-75 and I-24, when heading north on I-75, is a "left" and "right" according to highway signs.

On the other hand, this intersection of I-75 and I-85, also heading north on I-75, is labelled as "left" and "straight". It could just as easily be "left" and "right", or "straight" and "right", but the local signs all use "left" and "straight".

This intersection is described by locals as a "fork". This is hard for a computer to judge automatically, because the road before the fork continues after it in one direction.


Key Value Discussion
type turn_hint defines the type of the relations
turn value See table below

Values for turn

  • left can always be switched with right in all values below
Turn value Example Sample English directions normally used
straight "Go straight [onto road]."
"Continue straight [on road]."
left "Turn left [onto road]."
slight_left "Slight left [onto road]."
"Turn slight left [onto road]."
"Bear left [onto road]."
sharp_left "Sharp left [onto road]."
"Turn sharp left [onto road]."
fork_left "Bear left [at the fork] [onto road]."
jughandle_left "Turn [right] at the jughandle, then [turn left]/[go straight] [onto road]." (How do people normally describe this?)

Other types of turns could be added, such as "michigan_left", "u_turn", "hard_left", etc.

We could also use this to distinguish between a "straight" which means "keep going" (and doesn't need to be said) versus a "straight" onto a different road which should be stated explicitly when giving directions.


These are similar to the well-established Turn restrictions.

Way or Node Role Recurrence? Discussion
way from one a way from which turn starts
way to one the other end of the turn
via either one or more
or one
the nodes or way between the end points of from and to, across which you travel when making this turn. E.g., for a jug handle, this would include the way that makes up the jug handle.