Junction Style Guide/Controlling turn instructions Discussion View history

Revision as of 16:45, 22 March 2014 by Kentsmith9 (talk | contribs) (progress save)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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.

Template:ReturnJSG

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 properly enabled or restricted, the proper navigation instructions will never be produced for the client app.


In the 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 page, but a summary is provided in the sections below.

Geometry

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.

  • Approximately 90 degree departure angle = Turn instruction
  • Between 20 and 30 degree departure angle:
    • when only Primary Street and below are involved = Keep Right / Keep Left instruction
    • 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
  • Approximately 0 degree departure angle = no navigation instruction

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 can impact instructions.

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.

Similarly, if we have a 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.

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.

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:

But if we move one geometry node to create a 90 degree angle, we would receive a "Turn Right" instruction.

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.

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.

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 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.


Template:ReturnJSG