(1) Best Continuation - 2nd bullet exclude s-out, added last bullet there isn't always one 2) added "/LEFT" to algorithm 3) Changed "locked" to "restricted" 4) linked RevCons 5) deleted Papyrus reference.) |
(removed "/LEFT") |
||
Line 24: | Line 24: | ||
1. If the junction has only 2 segments, the instruction is: 'CONTINUE'.<br/>1.1. In some cases, T junctions could be considered as only 2 segments. See explanation on 'T junctions' below. | 1. If the junction has only 2 segments, the instruction is: 'CONTINUE'.<br/>1.1. In some cases, T junctions could be considered as only 2 segments. See explanation on 'T junctions' below. | ||
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 | 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 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. | ||
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) | 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) | ||
4. If s-in is a primary road and s-out is not a primary road (mH, MH, FW), the instruction is: 'EXIT RIGHT | 4. If s-in is a primary road and s-out is not a primary road (mH, MH, FW), the instruction is: 'EXIT RIGHT'. | ||
5. If s-in is a ramp/exit and s-out is neither a primary road (mH, MH, FW), nor a ramp/exit, the instruction is: 'EXIT RIGHT | 5. If s-in is a ramp/exit and s-out is neither a primary road (mH, MH, FW), nor a ramp/exit, the instruction is: 'EXIT RIGHT'. | ||
6. If none of the above conditions is met, the instruction is: 'KEEP RIGHT | 6. If none of the above conditions is met, the instruction is: 'KEEP RIGHT' | ||
== T junctions and one way roads == | == T junctions and one way roads == |
Revision as of 17:44, 2 May 2014
A somewhat simplified description of this is covered in the Junction Style Guide. Additional routing information is covered in the article Routing server.
General comments
The description below fits a right turn in a Right-hand traffic country (e.g. not England). Left turns are symmetrical to right turns.
Definitions
a) s-in: the segment going into the junction; this is the segment the driver is on before reaching the junction
b) s-out: the segment going out of the junction; this is the segment we want the driver to traverse to
c) s1, s2 … sN: all the segments connected to the same junction, which includes s-out
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
What is the 'best continuation'?
In order to determine if s-out is the 'real' continuation of s-in, we do the following:
- if s-out has the same road type & street name it is selected as the real continuation.
- if not, we look at the other segments: s1, s2 … sN (excluding s-out). One of those will be chosen as a better continuation than s-out if both following conditions are met:
- 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.
- the angle between this segment and s-in is smaller than the angle between s-out and s-in
- if both condtions are not met, then there will not be a segment at this junction considered to be the 'best continuation'. This applies even if the angle between s-in and s-out is 0°.
The algorithm / list of conditions
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 junction has only 2 segments, the instruction is: 'CONTINUE'.
1.1. In some cases, T junctions could be considered as only 2 segments. See explanation on 'T junctions' below.
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 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.
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)
4. If s-in is a primary road and s-out is not a primary road (mH, MH, FW), the instruction is: 'EXIT RIGHT'.
5. If s-in is a ramp/exit and s-out is neither a primary road (mH, MH, FW), nor a ramp/exit, the instruction is: 'EXIT RIGHT'.
6. If none of the above conditions is met, the instruction is: 'KEEP RIGHT'
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'.
Turns can be restricted or unrestricted, in specific scenarios you may not be able to see this in WME - see RevCons for more information.
For example, in this case (image below) - assuming the node is restricted properly - 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 restricted, 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'.
https://wiki.waze.com/wiki/images/0/00/Right_turn_1.png
This could be confusing, especially since there's no external indication on whether or not a node is restricted at the moment. There are external scripts which show this information (and some allow it to be easily corrected) - see RevCons for more information.