Routing penalties/Controlling U-turn penalties: Difference between revisions Discussion View history

Line 23: Line 23:
* To selectively allow a U-turn from only one direction, first setup U-turn prevention as you would for both directions. Then, for the side where U-turns are allowed, make the incoming and outgoing segments sufficiently [[#Checking for parallel segments|non-parallel]]. (Tip: consider using a [[Glossary#mDL|Micro-dogleg]] to discreetly adjust the angle without affecting appearance)
* To selectively allow a U-turn from only one direction, first setup U-turn prevention as you would for both directions. Then, for the side where U-turns are allowed, make the incoming and outgoing segments sufficiently [[#Checking for parallel segments|non-parallel]]. (Tip: consider using a [[Glossary#mDL|Micro-dogleg]] to discreetly adjust the angle without affecting appearance)


==== {{@|Checking for parallel segments}} ====
==== {{@|Checking for parallel incoming and outgoing segments}} ====


A convenient way to check if the two side segments are parallel is to use another segment as a reference tool. If the median segment has no geometry nodes, it can be the reference segment. Otherwise you can draw a new segment as a reference tool with no geometry which connects the A and B nodes of the median segment. ''The reference segment can be deleted after the check is complete, if appropriate.''
Condition #3 for U-turn prevention requires the incoming and outgoing segments to be within ±5º of parallel to each other. These two segments are considered parallel if their angles with respect to a ''straight'' median segment sum to 180±5º (i.e, between 175º and 185º).  


Check two angles:
Angles can be easily checked with the [[Scripts#WME_Junction_Angle_info|Junction Node Info]] script add-on, which can be set to report absolute angles or [[How_Waze_determines_turn_/_keep_/_exit_maneuvers|turn angles]] ("departure"). For the purpose of determining parallelism, summing either measurements will work.
# X — the angle between the incoming one-way segment and the reference segment
# Y — the angle between the outgoing one-way segment and the reference segment.


If the sum of these two angles is within 5° of 180° (between 175-185°), then the roads are considered parallel.
[[File:U-turn_Parallel_Check_Straight.png||center]]
<br>


In the example below, angle X is 102°, and angle Y is 75°. The sum is 177°, which is within 3° of 180°. Therefore these roads are considered parallel.
However, if the median segment has geometry nodes and is not straight, it cannot be used as a reference. In this case, temporarily add a straight segment to the same junctions as the existing curved median. Check the angles using this straight median and delete when done.
[[File:LilyPondU-turn.jpeg]]
 
[[File:U-turn_Parallel_Check_Curved.png]]

Revision as of 10:20, 24 August 2015

Median U-turn penalty link to this section

For the latest discussion on this section please visit the wiki forum thread.
It is possible for this method to fail to prevent a U-turn when it is the first segment of a route or reroute. If you observe this method to fail when it is implemented properly, please report it in this forum thread


Segment too short to allow two left turns
Segment too short to allow two left turns

The Waze routing algorithm assesses a penalty for a double-left or -right turn, which can be used to prevent U-turns at box- (#) and H-style intersections on divided highways and parallel roads.


Preventing median U-turns link to this section

A large U-turn penalty is applied for a double left/right turn when all three of the conditions below are met:

  1. The U-turn is composed of an incoming segment, a single median segment, and an outgoing segment
  2. The length of the median segment is shorter than 15 m (49.21 feet)
  3. The incoming and outgoing segments are within ±5° of parallel to each other

Allowing median U-turns link to this section

To allow a double left/right turn through a median segment, break any one of the above criteria.
For example:

  • To allow median U-turns in both directions, break condition #2 by making the median segment longer than 15 m (49.21 ft)
  • To selectively allow a U-turn from only one direction, first setup U-turn prevention as you would for both directions. Then, for the side where U-turns are allowed, make the incoming and outgoing segments sufficiently non-parallel. (Tip: consider using a Micro-dogleg to discreetly adjust the angle without affecting appearance)

Checking for parallel incoming and outgoing segments link to this section

Condition #3 for U-turn prevention requires the incoming and outgoing segments to be within ±5º of parallel to each other. These two segments are considered parallel if their angles with respect to a straight median segment sum to 180±5º (i.e, between 175º and 185º).

Angles can be easily checked with the Junction Node Info script add-on, which can be set to report absolute angles or turn angles ("departure"). For the purpose of determining parallelism, summing either measurements will work.


However, if the median segment has geometry nodes and is not straight, it cannot be used as a reference. In this case, temporarily add a straight segment to the same junctions as the existing curved median. Check the angles using this straight median and delete when done.