How Waze determines turn / keep / exit maneuvers: Difference between revisions Discussion View history

(Fixed double redirect)
(→‎Definitions: A note that references to the forum for a definition of roundabouts' types.)
 
(42 intermediate revisions by 10 users not shown)
Line 1: Line 1:
A somewhat simplified description of this is covered in the [[Junction_Style_Guide#Controlling_Turn_Instructions|Junction Style Guide]]. Additional routing information is covered in the article [[Routing server]].
{{Construction|contact=http://www.waze.com/forum/viewtopic.php?f=276&t=91105|contacttype=forum|draft=no|open=no|revision=yes}}


== General comments ==
A somewhat simplified description of this is covered in the [[Junction Style Guide|Junction Style Guide]]. Additional routing information is covered in the article [[Routing server]].


The description below fits a right turn in a right-hand side driving country (e.g. not England). As you may guess, Left turns are symmetrical to right turns.
The original text provided by Waze staff which inspired this page was proven slightly inaccurate, and was difficult to comprehend. It was replaced on 06/22/2014.
 
A simplified easy to understand interactive version of this page is [[Interactive junction instruction algorithm|available here]].


== Definitions ==
== Definitions ==


a) s-in: the segment going into the junction; this is the segment the driver is on before reaching the junction <br/>
To better be able to put the algorithm into words, we have to name each of the road segments that connect to a junction. These are ''subjective names'', they are relative to which segment the junction is being approached from, and which segment the routing server wants to navigate to after passing through the junction.
b) s-out: the segment going out of the junction; this is the segment we want the driver to traverse to <br/>
 
c) s1, s2 … sN: all the segments connected to the same junction, which includes s-out <br/>
Start with the junction in the middle.
d) Best continuation is one of the segments, and is the one that Waze determines is what drivers would consider the "no turning path" through the intersection - see expanded description below
 
*'''s-in: '''The segment the vehicle is on as it approaches the junction will be called '''s-in'''.
*'''s-out: '''The segment the vehicle is being routed onto after it passes through the junction will be called '''s-out'''. This can be any of the other segments connected to the junction, which will also be one of the segments named below as s1, s2, ... etc..
*'''s1, s2, s3, s4, etc.: '''All the segments connected to the same junction, (including s-out) will each be named consecutively as '''s1, s2, etc., '''''for as many segments as there are'''''… sN'''. One of these numbered segments will also be s-out.
*'''Best Continuation: '''One of the segments leaving the junction will be considered the 'Best Continuation'. This is the segment that Waze determines is what drivers would consider the "no turning path" or "going straight" through the intersection. This segment will get a 'continue' instruction, which is ignored by the client app. The criteria Waze uses to determine which segment is the 'Best Continuation' is explained below.
*'''Primary road:''' refers to a highway segment ({{Freeway}}, {{Major Highway}}, or {{Minor Highway}}), not a {{Primary Street}}.
{{Anchor|Angle}}[[File:Turn angle geonode.png|300px|thumbnail|right]]
*The '''angle''' is the angle from the origin to the destination. A perfectly straight road with a junction in the middle would have a turn angle of 0°. The angle then gets wider as you turn to either side. A perfect left or right turn would be 90°. A U-turn at a junction between two segments would represent a 180° turn.<br>(A turn less than {{:How_Waze_determines_turn_/_keep_/_exit_maneuvers/Stay threshold}} will give a keep/stay instruction, vs. a turn more than {{:How_Waze_determines_turn_/_keep_/_exit_maneuvers/Turn threshold}} which gives a turn instruction.)
**In technical terms: The angle between the linear segment between the last geometry node of s-in and the junction and the linear segment between the junction and the first geometry node of sN is the supplementary angle to the angle of sN.
{| class="Wikitable" style="text-align:center; border: 1px solid darkgray;" cellpadding="5" border="1"
! scope="col" colspan=3 | Angles
|-
| [[File:Turn angle.png|200px|thumbnail|center]]
| [[File:Turn_angle_37.png|200px|thumbnail|center]]
| [[File:Turn_angle_geo_line.png|200px|thumbnail|center]]
|-
| Standard Angles
| Less than 45° Angle
| 90° Dogleg Geometry Node
|}
 
*A '''[[Roundabouts/USA#Understanding_navigation_instructions|Normal Roundabout]]''' is one which has
*#Four (4) or less junction nodes,
*#All exits leave the roundabout ''(from the perspective of s-in)'' at a normal angle.
*#*A '''Normal Angle''' is 0° or 90° to either side, ±15°. (See [[Interactive_junction_instruction_algorithm#roundabout_angle|roundabout angle]] for more information)
*A '''[[Roundabouts/USA#Understanding_navigation_instructions|Non-Normal Roundabout]]''' is one which has
*#Five (5) or more junction nodes,
*#At least one exit leaves the roundabout ''(from the perspective of s-in)'' at a non-normal angle.
*#*A '''Non-Normal Angle''' is anything other than; 0° or 90° to either side, ±15°. (See [[Interactive_junction_instruction_algorithm#roundabout_angle|roundabout angle]] for more information)
<br/>
{{Mbox|type=caution|text=The above definitions for normal and non-normal roundabouts is a simplified version. A full definition is given [http://www.waze.com/forum/viewtopic.php?f=276&t=91105&p=2041124#p2041124 here].}}
<br/>
[[File:S-in s-out definition.jpg|border|center|Visualize how segments are subjectively named in the 'Best Continuation' Algorithm]]
<br>
 
== Best Continuation ==
{{anchor|What_is_the_.27best_continuation.27.3F}}
 
In order to determine if s-out is the 'real' continuation of s-in, Waze does the following:
 
:If the angle between s-in and s-out is less than {{:How_Waze_determines_turn_/_keep_/_exit_maneuvers/Stay threshold}}, it is selected as the real continuation, unless one of the following are present.
:*There is another segment (s1, s2, ...sN) with an angle less than {{:How_Waze_determines_turn_/_keep_/_exit_maneuvers/Stay threshold}} which has a better matching segment name & segment type to s-in than s-out does. (e.g. it has the same segment name and type as s-in and s-out doesn't; it has the same segment name as s-in and s-out doesn't; it has the same segment type as s-in, and s-out doesn't.) Segment name is more important than segment type.
{{Mbox|type=caution|text={{As of|2015|05}} This algorithm was changed to also factor in alternate names. '''All names are considered equally without any hierarchy'''. Any time the algorithm looks for a name match, it can be between any name; primary or alternate of the segments.


== What is the 'best continuation'? ==
This means a primary name match, an alternate name match, and a cross name match are all treated equally by this algorithm.
{{ForumLink|forum=http://www.waze.com/forum/viewtopic.php?f=276&t=91105&p=894147#p892470}}
~{{User:PesachZ/User}}}}
:*There is another segment (s1, s2, ...sN) with an angle less than {{:How_Waze_determines_turn_/_keep_/_exit_maneuvers/Stay threshold}} which has the same segment name & segment type as s-out.


In order to determine if s-out is the 'real' continuation of s-in, we do the following: <br/>
If a 'best continuation' is determined, Waze will not give an instruction going onto that segment.
- if s-out has the same road type & street name it is selected as the real continuation. <br/>
- if not, we look at the other segments: s3, s4 … sN. One of those will be chosen as a better continuation than s-out if both following conditions are met: <br/>


* this segment has a better match street name & road type wise than s-out (e.g. it has the same street name and s-out doesn't; it has the same road type as s-in, and s-out doesn't). Street name is more important than road type.  
[[File:Best continuation.png|border|center|700px|Flowchart defining the steps the algorithm runs through.]]
* the angle between this segment and s-in is smaller than the angle between s-out and s-in


== The algorithm / list of conditions ==
=== Exceptions ===


The algorithm iterates over a list of conditions. As soon as a condition is met, the relevant instruction is determined, and the algorithm terminates.<br/>
A junction with more than one segment leaving it at an angle less than {{:How_Waze_determines_turn_/_keep_/_exit_maneuvers/Stay threshold}} can give an instruction to '''all''' the segments, or '''none''' of the segments. Some of these scenarios are listed below:
The list of conditions:
* If, of all the segments leading out at less than {{:How_Waze_determines_turn_/_keep_/_exit_maneuvers/Stay threshold}}, no one segment is a better match than any other for name or segment type, all segments will all get instructions. This applies even if one of those has a departure angle of 0° from s-in. (This is also touched upon in the [[Wayfinder]] page.)
*There will '''not always''' be a ''best continuation''.
**When s-out has the same segment name and segment type as s-in, but another s-N also has the same segment name and type as s-in, neither will be considered the ''best continuation''.
*A segment (s1, s2, ...sN) leaving the junction at less than a {{:How_Waze_determines_turn_/_keep_/_exit_maneuvers/Stay threshold}} angle, which has the turn into it from s-in [[Turn restrictions#Turn restrictions .28allowed turns.29|restricted]] in [[Waze Map Editor|WME]] will not be considered in this algorithm as a 'best continuation', or as a sN, even if it has a departure angle of 0° from s-in.
*A segment with no name (the "none" check-box for street name is checked) is considered to have "no-name" as a name for the Best Continuation algorithm. So two segments with no name, will be considered to have identical names, even if they would inherit different names for TTS.


1. if the junction has only 2 segments, the instruction is: 'CONTINUE'.<br/>
== The algorithm ==
1.1. In some cases, T junctions could be considered as only 2 segments. See explanation on 'T junctions' below.
{{anchor|The_algorithm_.2F_list_of_conditions}}


2. if the angle between s-out and the best continuation is larger than 45 degrees (and less than 180), the instruction is: 'TURN RIGHT' - this is because we assume that on primary roads (minor highways, major highways and freeways), turn angles which are no more than 45 degrees (no sharp turns on higher-throughput roads); therefore, you never have something called an "exit" that has such an angle, and the instruction should be TURN, not EXIT
The description below fits a right turn in a [[Right-hand traffic]] country (e.g. the USA). Left turns are symmetrical to right turns.


3. if s-out is determined to be the best continuation of s-in (explanation on 'best continuation' above), the instruction is: 'CONTINUE', which implies that the driver is not turning (i.e., going straight through the junction)
The algorithm iterates over a list of conditions. As soon as a condition is met, the relevant instruction is determined, and the algorithm terminates.


4. if s-in is a primary road and s-out is not a primary road, the instruction is: 'EXIT RIGHT'
=== The list of conditions ===


5. if s-in is a ramp/exit and s-out is neither primary nor ramp/exit, the instruction is: 'EXIT RIGHT'
# If the angle between s-in and s-out is greater than 169°, the instruction is: ''''Make a U-turn''''.
#If the junction has only 2 segments, the instruction is: ''''CONTINUE''''.<br><u>''By design the client does not give this instruction.''</u> <!--This is mentioned in [[Update_Requests_in_Waze_Map_Editor#Driven_and_Requested_Routes]] -->
#If s-out is determined to be the best continuation of s-in (see explanation on 'best continuation' above), the instruction is: ''''CONTINUE'''', which implies that the driver is not turning (i.e., going straight through the junction).<br><u>''By design the client does not give this instruction.''</u> <!--This is mentioned in [[Update_Requests_in_Waze_Map_Editor#Driven_and_Requested_Routes]] -->
#If the angle between s-out and a straight line is larger than 45 degrees, the instruction is: ''''TURN RIGHT''''.
#*This is because we assume that on primary roads ({{Freeway|freeways}}, {{Major Highway|major highways}}, and {{Minor Highway|minor highways}}), turn angles are less than 45 degrees (no sharp turns on higher-throughput roads). Therefore, you never have something called an "exit" that has such an angle, and the instruction should be TURN, not EXIT.
#If s-in is a primary road ({{Freeway|FW}}, {{Major Highway|MH}}, {{Minor Highway|mH}}) and s-out is not a primary road ({{Freeway|FW}}, {{Major Highway|MH}}, {{Minor Highway|mH}}), the instruction is: ''''EXIT RIGHT''''.
#If s-in is a {{ramp|ramp/exit}} and s-out is neither a primary road ({{Freeway|FW}}, {{Major Highway|MH}}, {{Minor Highway|mH}}), nor a {{ramp|ramp/exit}}, the instruction is: ''''EXIT RIGHT''''.
#*'''NOTE: in a [[RHT|RHT country]] there is no EXIT LEFT, in a [[LHT|LHT country]] there is no EXIT RIGHT.
#If none of the above conditions are met, the instruction is: ''''KEEP RIGHT''''.


6. if none of the above conditions is met, the instruction is: 'KEEP RIGHT'
=== Graphic flowchart ===
<br/><br/>
This is a static graphic flowchart starting from a junction point and flowing through (all) the possible configuration options, to hopefully cover any scenario. It culminates in all the possible navigation instructions. This chart includes [[Roundabout#Understanding_navigation_instructions|roundabouts]], [[LHT|Left Hand Traffic]], and [[RHT|Right Hand Traffic]]. For an interactive version with more descriptions and illustrations see the [[Interactive junction instruction algorithm|interactive page]].
[[File:Turn algorithm flowchart.png|700px|thumb|center|Graphic flowchart for algorithm how waze determines turn, keep, and exit instructions. For Junctions, and roundabouts. ''(click to enlarge)'']]


== T junctions and one way roads ==
== Special considerations ==
{{anchor|T_junctions_and_one_way_roads}}


In some cases, a node could have more than 2 segments, but the routing server will consider only 2 of them as valid and therefore, the maneuver will be 'Continue straight'.<br/>
*The direction of a turn which is less than {{:How_Waze_determines_turn_/_keep_/_exit_maneuvers/Stay threshold}} is measured relative to the other segments at the junction less than {{:How_Waze_determines_turn_/_keep_/_exit_maneuvers/Stay threshold}}.
Nodes can become locked on specific scenarios - see [[Roundabouts]] for more information.
**A junction with two segments that are less than {{:How_Waze_determines_turn_/_keep_/_exit_maneuvers/Stay threshold}} will give a KEEP RIGHT to the right branch, even if it is to the left of a straight line.


For example, in this case (image below) - assuming the node is locked - heading south, the right turn will be considered 'Continue straight' as the routing server has no other option and there's only one possible segment to be s-out.<br/>
*When there are more than two segments less than {{:How_Waze_determines_turn_/_keep_/_exit_maneuvers/Stay threshold}}, only the left most segment will be KEEP LEFT, all the rest will be KEEP RIGHT.
**If the left most segment is overlapping another segment, it will also be KEEP RIGHT.


*If the only two segments less than {{:How_Waze_determines_turn_/_keep_/_exit_maneuvers/Stay threshold}} overlap each other, neither will get an instruction.


*In some cases, a junction node could have more than two segments, but the routing server will only consider two of them as valid and therefore, the maneuver will be 'Continue straight'. This happens when turns into some of the segments are [[Turn restrictions#Turn restrictions .28allowed turns.29|restricted]], the routing server then skips those segments and ignores them when determining the 'Best Continuation'.
**At the time of this writing, neither the author or anyone involved in the discussion has ever experienced this unless the restricted segment has a turn angle of less than {{:How_Waze_determines_turn_/_keep_/_exit_maneuvers/Stay threshold}}.


If the node was not locked, most likely that waze would tell you to turn right. Driving against the direction is a high [[Routing_penalties|penalty]], and so is a left turn where a turn is not allowed. However, it would still have been an option, which is why the routing server would have called it 'turn right'.<br/><br/>
*Turns can be [[Turn restrictions#Turn restrictions .28allowed turns.29|restricted or unrestricted]]. In specific scenarios you may not be able to see this in [[Waze Map Editor|WME]] - see [[Reverse connectivity#Reverse Connectivity|RevCons]] for more information. There are external scripts which show this information (and some allow it to be easily corrected).


[[image:Right_turn_1.png|700px|left]]
*The [[How Waze determines turn / keep / exit maneuvers|original text]] mentions special behavior for ''locked nodes''. For example, in this case (image below) - assuming the node is locked - heading south, the right turn will be considered 'Continue straight' as the routing server has no other option and there's only one possible segment to be s-out.
**If the node was not locked, it is most likely that Waze would tell you to turn right. Driving against the direction is a high [[Routing penalties|penalty]], and so is a left turn where a turn is not allowed. However, it would still have been an option, which is why the routing server would have called it 'turn right'.
[[File:Right_turn_1.png]]
**This could be confusing, especially since there's no external indication on whether or not a node is locked at the moment.
**The author and those involved in the discussion have never experienced a ''locked'' node which didn't follow the algorithm for determining the instruction.


This could be confusing, especially since there's no external indication on whether or not a node is locked at the moment. We will add it to the Papyrus soon.
[[Category:Waze operations]]

Latest revision as of 16:48, 14 February 2020

This revision of the page is currently undergoing modifications. The information and guidance is currently considered accurate enough to be followed now. Content is being prepared by one or more users. Do not make any changes before you post a message in this forum.

A somewhat simplified description of this is covered in the Junction Style Guide. Additional routing information is covered in the article Routing server.

The original text provided by Waze staff which inspired this page was proven slightly inaccurate, and was difficult to comprehend. It was replaced on 06/22/2014.

A simplified easy to understand interactive version of this page is available here.

Definitions

To better be able to put the algorithm into words, we have to name each of the road segments that connect to a junction. These are subjective names, they are relative to which segment the junction is being approached from, and which segment the routing server wants to navigate to after passing through the junction.

Start with the junction in the middle.

  • s-in: The segment the vehicle is on as it approaches the junction will be called s-in.
  • s-out: The segment the vehicle is being routed onto after it passes through the junction will be called s-out. This can be any of the other segments connected to the junction, which will also be one of the segments named below as s1, s2, ... etc..
  • s1, s2, s3, s4, etc.: All the segments connected to the same junction, (including s-out) will each be named consecutively as s1, s2, etc., for as many segments as there are… sN. One of these numbered segments will also be s-out.
  • Best Continuation: One of the segments leaving the junction will be considered the 'Best Continuation'. This is the segment that Waze determines is what drivers would consider the "no turning path" or "going straight" through the intersection. This segment will get a 'continue' instruction, which is ignored by the client app. The criteria Waze uses to determine which segment is the 'Best Continuation' is explained below.
  • Primary road: refers to a highway segment ( Freeway ,  Major Highway , or  Minor Highway ), not a  Primary Street .

  • The angle is the angle from the origin to the destination. A perfectly straight road with a junction in the middle would have a turn angle of 0°. The angle then gets wider as you turn to either side. A perfect left or right turn would be 90°. A U-turn at a junction between two segments would represent a 180° turn.
    (A turn less than 45.04° will give a keep/stay instruction, vs. a turn more than 45.14° which gives a turn instruction.)
    • In technical terms: The angle between the linear segment between the last geometry node of s-in and the junction and the linear segment between the junction and the first geometry node of sN is the supplementary angle to the angle of sN.
Angles
Standard Angles Less than 45° Angle 90° Dogleg Geometry Node
  • A Normal Roundabout is one which has
    1. Four (4) or less junction nodes,
    2. All exits leave the roundabout (from the perspective of s-in) at a normal angle.
      • A Normal Angle is 0° or 90° to either side, ±15°. (See roundabout angle for more information)
  • A Non-Normal Roundabout is one which has
    1. Five (5) or more junction nodes,
    2. At least one exit leaves the roundabout (from the perspective of s-in) at a non-normal angle.
      • A Non-Normal Angle is anything other than; 0° or 90° to either side, ±15°. (See roundabout angle for more information)


The above definitions for normal and non-normal roundabouts is a simplified version. A full definition is given here.


Visualize how segments are subjectively named in the 'Best Continuation' Algorithm
Visualize how segments are subjectively named in the 'Best Continuation' Algorithm


Best Continuation

In order to determine if s-out is the 'real' continuation of s-in, Waze does the following:

If the angle between s-in and s-out is less than 45.04°, it is selected as the real continuation, unless one of the following are present.
  • There is another segment (s1, s2, ...sN) with an angle less than 45.04° which has a better matching segment name & segment type to s-in than s-out does. (e.g. it has the same segment name and type as s-in and s-out doesn't; it has the same segment name as s-in and s-out doesn't; it has the same segment type as s-in, and s-out doesn't.) Segment name is more important than segment type.
As of May 2015 This algorithm was changed to also factor in alternate names. All names are considered equally without any hierarchy. Any time the algorithm looks for a name match, it can be between any name; primary or alternate of the segments.

This means a primary name match, an alternate name match, and a cross name match are all treated equally by this algorithm.

Bring up comments or questions on this page in this forum .
~PesachZ (PM [Help])  
  • There is another segment (s1, s2, ...sN) with an angle less than 45.04° which has the same segment name & segment type as s-out.

If a 'best continuation' is determined, Waze will not give an instruction going onto that segment.

Flowchart defining the steps the algorithm runs through.
Flowchart defining the steps the algorithm runs through.

Exceptions

A junction with more than one segment leaving it at an angle less than 45.04° can give an instruction to all the segments, or none of the segments. Some of these scenarios are listed below:

  • If, of all the segments leading out at less than 45.04°, no one segment is a better match than any other for name or segment type, all segments will all get instructions. This applies even if one of those has a departure angle of 0° from s-in. (This is also touched upon in the Wayfinder page.)
  • There will not always be a best continuation.
    • When s-out has the same segment name and segment type as s-in, but another s-N also has the same segment name and type as s-in, neither will be considered the best continuation.
  • A segment (s1, s2, ...sN) leaving the junction at less than a 45.04° angle, which has the turn into it from s-in restricted in WME will not be considered in this algorithm as a 'best continuation', or as a sN, even if it has a departure angle of 0° from s-in.
  • A segment with no name (the "none" check-box for street name is checked) is considered to have "no-name" as a name for the Best Continuation algorithm. So two segments with no name, will be considered to have identical names, even if they would inherit different names for TTS.

The algorithm

The description below fits a right turn in a Right-hand traffic country (e.g. the USA). Left turns are symmetrical to right turns.

The algorithm iterates over a list of conditions. As soon as a condition is met, the relevant instruction is determined, and the algorithm terminates.

The list of conditions

  1. If the angle between s-in and s-out is greater than 169°, the instruction is: 'Make a U-turn'.
  2. If the junction has only 2 segments, the instruction is: 'CONTINUE'.
    By design the client does not give this instruction.
  3. If s-out is determined to be the best continuation of s-in (see explanation on 'best continuation' above), the instruction is: 'CONTINUE', which implies that the driver is not turning (i.e., going straight through the junction).
    By design the client does not give this instruction.
  4. If the angle between s-out and a straight line is larger than 45 degrees, the instruction is: 'TURN RIGHT'.
    • This is because we assume that on primary roads ( freeways ,  major highways , and  minor highways ), turn angles are less than 45 degrees (no sharp turns on higher-throughput roads). Therefore, you never have something called an "exit" that has such an angle, and the instruction should be TURN, not EXIT.
  5. If s-in is a primary road ( FW ,  MH ,  mH ) and s-out is not a primary road ( FW ,  MH ,  mH ), the instruction is: 'EXIT RIGHT'.
  6. If s-in is a  ramp/exit  and s-out is neither a primary road ( FW ,  MH ,  mH ), nor a  ramp/exit , the instruction is: 'EXIT RIGHT'.
  7. If none of the above conditions are met, the instruction is: 'KEEP RIGHT'.

Graphic flowchart

This is a static graphic flowchart starting from a junction point and flowing through (all) the possible configuration options, to hopefully cover any scenario. It culminates in all the possible navigation instructions. This chart includes roundabouts, Left Hand Traffic, and Right Hand Traffic. For an interactive version with more descriptions and illustrations see the interactive page.

Graphic flowchart for algorithm how waze determines turn, keep, and exit instructions. For Junctions, and roundabouts. (click to enlarge)

Special considerations

  • The direction of a turn which is less than 45.04° is measured relative to the other segments at the junction less than 45.04°.
    • A junction with two segments that are less than 45.04° will give a KEEP RIGHT to the right branch, even if it is to the left of a straight line.
  • When there are more than two segments less than 45.04°, only the left most segment will be KEEP LEFT, all the rest will be KEEP RIGHT.
    • If the left most segment is overlapping another segment, it will also be KEEP RIGHT.
  • If the only two segments less than 45.04° overlap each other, neither will get an instruction.
  • In some cases, a junction node could have more than two segments, but the routing server will only consider two of them as valid and therefore, the maneuver will be 'Continue straight'. This happens when turns into some of the segments are restricted, the routing server then skips those segments and ignores them when determining the 'Best Continuation'.
    • At the time of this writing, neither the author or anyone involved in the discussion has ever experienced this unless the restricted segment has a turn angle of less than 45.04°.
  • Turns can be restricted or unrestricted. In specific scenarios you may not be able to see this in WME - see RevCons for more information. There are external scripts which show this information (and some allow it to be easily corrected).
  • The original text mentions special behavior for locked nodes. For example, in this case (image below) - assuming the node is locked - heading south, the right turn will be considered 'Continue straight' as the routing server has no other option and there's only one possible segment to be s-out.
    • If the node was not locked, it is most likely that Waze would tell you to turn right. Driving against the direction is a high penalty, and so is a left turn where a turn is not allowed. However, it would still have been an option, which is why the routing server would have called it 'turn right'.

    • This could be confusing, especially since there's no external indication on whether or not a node is locked at the moment.
    • The author and those involved in the discussion have never experienced a locked node which didn't follow the algorithm for determining the instruction.