Relation:manoeuvre

From OpenStreetMap Wiki
Jump to navigation Jump to search
Public-images-osm logo.svg manoeuvre
Hands on wheel.jpg
Description
overrides the router's classification of a given manoeuvre Show/edit corresponding data item.
Group: routing
Members
  • way - from
  • way - to
  • way node - via
Requires
Useful combination
See also
Status: in use

A manoeuvre (maneuver) relation overrides a router's classification of a particular manoeuvre at a junction. It is a last-resort hint for when a router cannot reasonably infer the correct turn instruction at a complex junction based on common heuristics like the turn angle or number of connecting ways.

Usage

Despite this relation type, tagging that caters to the idiosyncracies of a particular router is discouraged. Manoeuvre relations can be seen as less harmful than contorting the road geometry or adding fake streets, which can be detrimental to accurate rendering. [1][2] Before resorting to a manoeuvre relation, check whether routers produce the correct guidance instruction for the manoeuvre. If one router produces suboptimal guidance while the others produce acceptable guidance, it may be a bug in that one router – be sure to report the issue to the router's developers.

How to map

information sign

This is a description of existing usage influenced by existing software support (specifically OSRM), not a tagging proposal or specification.

Members

The members of the manoeuvre relation describe where you want to modify a routing instruction. As with a turn restriction relation, the relation's members should include the ways that approach and lead away from the junction, along with the node at which the manoeuvre is performed. 'Via ways' are also supported, but unlike turn restrictions, you must still include a 'via node' to indicate the position where the override applies.

Role Element Occurrence Explanation
Role from way way ! 1 The way where the route is coming from.
Role via way way ? 0+ Any number of ways in the route between the 'from' way and the 'to' way, if any.
Role to way way ! 1 The way where the route is going to.
Role via node node ! 1 The node between the 'from' way and the 'to' way where the routing instruction is to be overridden.

Tags

The tags of the manoeuvre relation indicate what the routing instruction will be:

Key Value Explanation
type

manoeuvre

The relation type.
manoeuvre continue Instruct the driver to continue following the road in a direction. The direction in which to continue is indicated by direction=*.
turn Instruct the driver to go straight or make a turn (other than a u-turn). The turn to make is indicated by direction=* or going straight is indicated by direction=straight.
uturn Instruct the driver to make a u-turn.
fork Instruct the driver to keep a side at a fork/diverge. The side to keep is indicated by direction=*.
suppress Do not give any instruction to the driver.
direction sharp_left The direction to include in the instruction to the driver (if relevant for the manoeuvre=*).
left
slight_left
straight
slight_right
right
sharp_right

Note that the possible directions differ from valid turn=* values: uturn instead of reverse, straight instead of through.

Examples

The OSRM repository contains several examples of how manoeuvres need to be mapped and how they change the generated routing instructions: https://github.com/Project-OSRM/osrm-backend/blob/master/features/guidance/maneuver-tag.feature

Software support

This relation type is intended as an override of routing engine behaviour. OSRM 5.16.0 added support for type=maneuver relations, using the American spelling. [3] OSRM 5.17.0 added support for the type=manoeuvre and type=maneuvre spellings, the former of which is now preferred by OSRM. [4] In the future, more support for turn=* in OSRM may make some manoeuvre relations unnecessary. [5]

There is no preset for manoeuvre relations in iD, but you can create a turn restriction relation using the mini-editor, then replace type=restriction restriction=* with type=manoeuvre manoeuvre=* direction=*.

Tagging errors

The British spelling manoeuvre=* is preferred, but OSRM also supports the American spelling maneuver=* and a common misspelling, maneuvre=*:

If you know places with this tag, verify if it could be tagged with another tag.
Automated edits are strongly discouraged unless you really know what you are doing!
If you know places with this tag, verify if it could be tagged with another tag.
Automated edits are strongly discouraged unless you really know what you are doing!

See also

External links