Junction Style Guide/Controlling turn instructions: Difference between revisions View history

(progress save)
 
No edit summary
 
(19 intermediate revisions by 5 users not shown)
Line 8: Line 8:
| talk        = yes
| talk        = yes
}}
}}
{{ReturnJSG}}


{| class="Wikitable floatright"
{{ReturnTo | Junction_Style_Guide | the Junction Style Guide}}
 
 
{| class="Wikitable floatright" cellpadding="5" border="1" style="text-align:center; border: 1px solid darkgray;"
|-
| Keep Right || Keep Left
| Keep Right || Keep Left
|-
|-
Line 16: Line 19:
|-
|-
| Exit Right || Exit Left
| Exit Right || Exit Left
|-
|}
|}
Before going further, make sure to understand the mechanics of [[Map_Editing_Quick-start_Guide#Turn_restrictions_.28allowed_turns.29|turn restrictions]] in the [[Waze Map Editor]]. If turns are not properly enabled or restricted, the proper navigation instructions will never be produced for the client app.
Before going further, make sure to understand the mechanics of [[Map_Editing_Quick-start_Guide#Turn_restrictions_.28allowed_turns.29|turn restrictions]] in the [[Waze Map Editor]]. If turns are not correctly enabled or restricted, the proper navigation instructions will never be produced for the client app.


This article covers a summary of how navigation instructions are set by controlling the angle of the junctions. This is briefly covered in the [[Junction_Style_Guide/Diverging_roads|Diverging roads]] article noted above. Much more detailed mechanics behind this function can be found in the article [[How_Waze_determines_turn_/_keep_/_exit_maneuvers|How Waze determines turn / keep / exit maneuvers]], and its companion [[Interactive junction instruction algorithm]].


In the [[Junction_Style_Guide/Diverging_roads|Diverging roads]] article noted above, we touched on how to ensure a "Turn left/right" instruction would be given over a "Keep left/right" instruction.  Details of the mechanics behind this can be found on the [[How_Waze_determines_turn_/_keep_/_exit_maneuvers|How Waze determines turn / keep / exit maneuvers]] page, but a summary is provided in the sections below.
=== Geometry ===
=== Geometry ===
{{mbox
| type      = cleanup
| textstyle  = color: red; font-weight: bold; font-style: italic;
| text      = Information on [[Turn instruction override]] needs to be added.


If all junctions you edit follow a few basic forms, it will be much easier to predict the navigation behavior of an individual junction without getting into the details of the back-end algorithms.
}}
All junctions should be laid out to follow a few basic forms to ensure better prediction of navigation behavior. The table below provides guidance for how to set the angles of junctions between segments to achieve the desired navigation instruction listed.


* Approximately '''90''' degree departure angle = '''Turn''' instruction
{|class="wikitable" border="1" style="text-align:center;"
* Between '''20 and 30''' degree departure angle:
|-
** when only Primary Street and below are involved = '''Keep Right / Keep Left''' instruction
! style="background: #99FF99;" | Departure Angle
** when Ramps and/or Minor Highway and above are involved = '''Exit Right / Keep Left''' instruction for right-hand drive countries, '''Keep Right / Exit Left''' instruction for left-hand drive countries
! style="background: #99FF99;" scope="col" width="75px" | Range
* Approximately '''0''' degree departure angle = '''no navigation instruction'''
! style="background: #99FF99;" | Road Type
! style="background: #99FF99;" | Traffic Side
! style="background: #99FF99;" scope="col" width="225px" | Navigation Instruction
|-
| Rowspan="3" | 22°
| Rowspan="3" | 0°-43°
| All except Ramps, Highways, Freeways
| All
| '''Keep''' Left and '''Keep''' Right
|-
| Rowspan="2" | Ramps, Highways, Freeways
| [[LHT]]
| '''Exit''' Left and '''Keep''' Right
|-
| [[RHT]]
| '''Keep''' Left and '''Exit''' Right
|-
| 90°
| 45° - 150°
| All
| All
| '''Turn''' Left and '''Turn''' Right
|}


'''NOTE:''' There are exceptions to these rules since geometry is not the only factor which determines instructions. See later sections for how [[#Segment_Naming_and_Type|Segment Naming and Type]] can impact instructions.
* Departure Angle = The deviation from straight ahead (0) in degrees.
* Range = The range of angles that will result in that condition.
* Road Type = The road type connected to the junction. Higher road types take precedence.
* Traffic Side = Left-hand Traffic, Right-hand Traffic, or both
* Navigation Instruction = The instruction to be given through the client app.


These angles allow us to clearly depict the desired result (turn vs. keep) while staying away from the angles that cause uncertain decisions from the routing  algorithms. For example, since 45 degrees is a tipping point for the algorithms, a 44.5 degree angle will behave very differently than a 45.5 degree angle, although they will look identical to the eye.
Stay away from the ends of the ranges (44°) as those are tipping points between the settings that are hard to determine visually on the map. Instead stick with the centerpoints (22°, 90°) shown in the departure angles column for better predictability.


Similarly, if we have a [[#Y_Intersections|road split at a Y]] and we want to be clear about which is "straight" and which bears off to the side, having one branch at zero degrees and the other branch at 5 degrees isn't clear and obvious; but "straight" would be much more apparent if the angles were zero degrees vs. 20 degrees.  Since most of us will not have a protractor handy when we are editing, it is best to simply avoid situations where exactness matters.
'''NOTE:'''
* There are exceptions to these rules covered in the section [[#Segment_naming_and_type|Segment name and type]] below.
[[File:Jct ramp w geo.png|150px|right]]
* Avoid having the angle between any two diverging segments be less 10°, this makes it very difficult to select the turn arrows in WME, as well as in the client 'Report>Road Closure'. Make the departure angle at the junction closer to 10°-20°. See the section on [[Junction_Style_Guide/Diverging_roads#Steep_angles_with_exits_and_keep_right_or_left|diverging roads]], and [[Junction_Style_Guide/Interchange#Ramp_geometry_and_complexity|Ramp geometry]] for more details.
* [[Turn instruction override]] can be used to control the turn instruction in cases where a (more or less) true-to-life angle will not give the appropriate instruction.
==== Examples ====
{| class="Wikitable floatright"
| [[Image:Jct_at_grade_keep.png|border]]
|}
For [[Junction_Style_Guide/Revision#Y_Intersections|road splits at a Y]] or [[at-grade connectors]], it is important to identify which road is "straight" and which bears off to the side. It is not good to have one at zero degrees and the other branch at 5 degrees. Instead show the branch at 30 degrees to be sure the Keep Right (or Left) instruction is given. For this case, adjust the [[geometry node]] of the branching road near the junction to control that angle.


This knowledge allows us to control how a junction behaves by modifying a single geometry node in most cases.  This is often useful for [[at-grade connectors]] where sometimes we prefer a "Keep right/left" and other times a "Turn right/left" would be more appropriate.
In these two examples of [[at-grade connectors]], if the departure angle is set for 30 degrees, a "Keep Right" instruction is provided to follow the curved one-way connector. But if a "Turn Right" instruction is appropriate, simply use a [[Turn instruction override]].
{{clear}}


If we keep the departure angle in the 20 to 30 degree range, we would get a "Keep Right" to follow the curved one-way connector:
=== Segment name and type ===


: [[Image:Jct_at_grade_keep.png]]
In addition to the geometry of the road segments, the road names and types of the attached segments affect the routing algorithms as well.


But if we move one geometry node to create a 90 degree angle, we would receive a "Turn Right" instruction.
==== Name ====
Generally, differences in road names at junctions will improve the chances (but not guarantee) that it will happen. In the case of the at-grade connector example above, the connector should either have a different name than the road it is leaving, or no name at all. See the [[At-grade connectors#Road name|road name]] section of the at-grade connector article.


: [[Image:Jct_at_grade_turn.png]]
==== Type ====
Although road type is a factor in determining navigation instructions, road names and angles are much more important. If multiple roads meet at a junction and one segment transitions to another at close to zero degrees and they both have the same name, that direction is considered straight no matter what road types are used. An example demonstrating this is shown in the discussion on [[Junction_Style_Guide/Revision#Y_Intersections|Y-intersections]] in the Junction Style Guide.


Similar rules apply for the end of that segment as well.  If we have a 20 to 30 degree angle as pictured above, there will be no turn instruction, as traffic just smoothly slides into the cross street.  But if we make the end of the segment close to a 90 degree angle, then there would be a turn right instruction for the driver.
{| class="Wikitable floatright"
 
| {{NeedImage|Need image of Ramp to Ramp with Freeway branch.}}
Furthermore, if the North-South road in that last example were a Minor Highway or a Major Highway, the 20 to 30 degree angle at the start of the connector would produce an "Exit" instruction which may be more confusing than a "Keep" instruction would have been.  So unless this connector is signed with an actual exit sign, a 90 degree start to the connector to produce a "Turn" instruction is most likely preferred.
|}
 
Road type will be the determining factor when all names are different. For example, a Ramp segment leads to a Freeway segment and another Ramp segment. The Ramp segment will be considered the "straight" continuation and there will be no announcement while a navigation instruction will be given to proceed to the Freeway segment. This is true even if the initial Ramp and the Freeway align at close to 0 degrees and the second Ramp departs at a 20 to 30 degree angle.
=== Segment Naming and Type ===
 
The names and road types of the attached segments affect the routing algorithms, in addition to the geometry of the road segments,
 
A rule of thumb is if you want a turn to be announced, having a name difference between segments will improve the chances (but not guarantee) that it will happen.  In the case of the at-grade connector example above, the connector should either have a different name than the road it is leaving, or no name at all. (See [[At-grade connectors#Road name]].)
 
Road type is a factor in determining navigation instructions as well, but names and angles are much more important.  If you have multiple roads meeting at a junction and two of those road segments line up at close to zero degrees and they have the same name, that will be considered straight no matter what road types are used.  An example demonstrating this is shown in the discussion on [[#Y_Intersections|Y-intersections]] in a later section.
 
Road type will be the determining factor when all names are different. For example imagine you have a Ramp segment leading to a Freeway segment and another Ramp segment. The Ramp segment will be considered the "straight" continuation and there will be no announcement while a navigation instruction will be given to proceed to the Freeway segment. This is true even if the initial Ramp and the Freeway align at close to 0 degrees and the second Ramp departs at a 20 to 30 degree angle.




{{ReturnJSG}}
{{ReturnTo | Junction_Style_Guide | the Junction Style Guide}}


[[Category:Style Guides]]
[[Category:Style guides]]

Latest revision as of 03:46, 30 October 2022

This revision of a section is currently undergoing modifications. The information presented should be considered a draft, not yet ready for use. Content is being prepared by one or more users. Do not make any changes before you send a private message to this user. Please use the talk page for thoughts and ideas on setting up this content.


Keep Right Keep Left
Turn Right Turn Left
Exit Right Exit Left

Before going further, make sure to understand the mechanics of turn restrictions in the Waze Map Editor. If turns are not correctly enabled or restricted, the proper navigation instructions will never be produced for the client app.

This article covers a summary of how navigation instructions are set by controlling the angle of the junctions. This is briefly covered in the Diverging roads article noted above. Much more detailed mechanics behind this function can be found in the article How Waze determines turn / keep / exit maneuvers, and its companion Interactive junction instruction algorithm.

Geometry

Information on Turn instruction override needs to be added.

All junctions should be laid out to follow a few basic forms to ensure better prediction of navigation behavior. The table below provides guidance for how to set the angles of junctions between segments to achieve the desired navigation instruction listed.

Departure Angle Range Road Type Traffic Side Navigation Instruction
22° 0°-43° All except Ramps, Highways, Freeways All Keep Left and Keep Right
Ramps, Highways, Freeways LHT Exit Left and Keep Right
RHT Keep Left and Exit Right
90° 45° - 150° All All Turn Left and Turn Right
  • Departure Angle = The deviation from straight ahead (0) in degrees.
  • Range = The range of angles that will result in that condition.
  • Road Type = The road type connected to the junction. Higher road types take precedence.
  • Traffic Side = Left-hand Traffic, Right-hand Traffic, or both
  • Navigation Instruction = The instruction to be given through the client app.

Stay away from the ends of the ranges (44°) as those are tipping points between the settings that are hard to determine visually on the map. Instead stick with the centerpoints (22°, 90°) shown in the departure angles column for better predictability.

NOTE:

  • Avoid having the angle between any two diverging segments be less 10°, this makes it very difficult to select the turn arrows in WME, as well as in the client 'Report>Road Closure'. Make the departure angle at the junction closer to 10°-20°. See the section on diverging roads, and Ramp geometry for more details.
  • Turn instruction override can be used to control the turn instruction in cases where a (more or less) true-to-life angle will not give the appropriate instruction.

Examples

For road splits at a Y or at-grade connectors, it is important to identify which road is "straight" and which bears off to the side. It is not good to have one at zero degrees and the other branch at 5 degrees. Instead show the branch at 30 degrees to be sure the Keep Right (or Left) instruction is given. For this case, adjust the geometry node of the branching road near the junction to control that angle.

In these two examples of at-grade connectors, if the departure angle is set for 30 degrees, a "Keep Right" instruction is provided to follow the curved one-way connector. But if a "Turn Right" instruction is appropriate, simply use a Turn instruction override.

Segment name and type

In addition to the geometry of the road segments, the road names and types of the attached segments affect the routing algorithms as well.

Name

Generally, differences in road names at junctions will improve the chances (but not guarantee) that it will happen. In the case of the at-grade connector example above, the connector should either have a different name than the road it is leaving, or no name at all. See the road name section of the at-grade connector article.

Type

Although road type is a factor in determining navigation instructions, road names and angles are much more important. If multiple roads meet at a junction and one segment transitions to another at close to zero degrees and they both have the same name, that direction is considered straight no matter what road types are used. An example demonstrating this is shown in the discussion on Y-intersections in the Junction Style Guide.

Need image of Ramp to Ramp with Freeway branch.

Road type will be the determining factor when all names are different. For example, a Ramp segment leads to a Freeway segment and another Ramp segment. The Ramp segment will be considered the "straight" continuation and there will be no announcement while a navigation instruction will be given to proceed to the Freeway segment. This is true even if the initial Ramp and the Freeway align at close to 0 degrees and the second Ramp departs at a 20 to 30 degree angle.