OSM Inspector/Views/Turn Restrictions
The Turn Restrictions view in OSM Inspector shows restriction relations from OpenStreetMap and highlights invalid ones.
Overview
Turn restrictions are used in OpenStreetMap to model forbidden turning manoeuvrers at intersections. They can either describe a forbidden manoeuvrer or a manoeuvrer which is the only one permitted for vehicles arriving from a certain edge of the routing graph.
Data sources
All data in this view is derived from OSM data.
Data for the whole world is available in this view.
The OSM data processing of this view is done by osmi_simple_views.
Layers
The layers are organised into two sections:
Invalid restrictions
This section contains all restriction relations recognised as invalid. There are two layers: one for points (nodes), one for lines (ways).
Invalid value of type=* key: The value of type=* on that relation is wrong. * is the only valid value for restriction relations.
Invalid value of restriction=* key: The value of restriction=* on that relation is wrong. See the wiki page for a list of valid values.
Invalid value of key: The mentioned key has an invalid value. This message appears for restrictions limited to a certain vehicle class, e.g. restriction:hgv=*.
No restriction=* or restriction:*=*: The relations lacks a key describing what type of restriction it is. There are multiple possible reasons. If the relation has a type=restriction but it is no restriction but something else (e.g. a route relation or multipolygon with wrong type=*, change type=* to the correct one. If relation is limited to a vehicle class and tagged with restriction:STRANGE_VEHICLE_CLASS but the vehicle class is not supported by OSMI, submit an issue on GitHub or write an email to Geofabrik.
Way with empty role: All way members must have a role. See the wiki page for a list of valid roles.
Multiple from members: There must be only one member ways with the role ; a
fromno_entry restriction may have multiple from way members. This happens if a mappers splits a way and their editor does not support turn restrictions properly. Remove the member which is not connected to the via node/way(s) in order to repair the relation. If that happened recently and you believe that it was caused the software, not by its users, submit a bug report to the developer of the editor.
Multiple to members: same as with members of role , see previous paragraph
from
Via way and node in one relation: A restriction relation must have either one node with role or at least one way with role
via.
via
Invalid role for way member: A way must not have a role other than ,
from or
via.
to
Invalid role for node member: Member nodes must have the role . A restriction relation must not have multiple member nodes.
via
Empty role for node member: Nodes must have the role . Please mind that a restriction relation must have either one node with role
via or at least one way with role
via.
via
Multiple via nodes: A restriction relation must not have multiple member nodes.
From way missing: The relation lacks a member way describing where the vehicle doing the described manoeuvrer comes from. Add the way if it is obvious from the history of the relation, aerial or satellite imagery. Consult street-level photographs like Mapillary or Panoramax. Ask the responsible mapper who created or modified the relation using a changeset comment if you are not sure.
To way missing: The relation lacks a member way describing where the vehicle doing the described manoeuvrer must (not) drive to. See previous paragraph for further details.
Via node or via way(s) missing: The relation lacks a node describing where the turn happens. Note that one or multiple ways may be used instead in complex situations to model the manoeuvrer correctly.
Start way not connected with via node: The way with role is not connected to the node with role
from. Reconnected it if it is obvious from the history of the relation, aerial or satellite imagery. Consult street-level photographs like Mapillary or Panoramax. Ask the responsible mapper who created or modified the relation using a changeset comment if you are not sure.
via
From way is not connected to any via way: The way with role is not connected to the way with role
from. See previous "Start way not connected with via node" for further information.
via
End way not connected with via node: The way with role is not connected to the node with role
to. See previous "Start way not connected with via node" for further information.
via
Via way not connected with from way: The last way with role (in order of driving) is not connected to the way with role
via. See previous "Start way not connected with via node" for further information.
from
Via way not connected with to way: The last way with role (in order of driving) is not connected to the way with role
via. See previous "Start way not connected with via node" for further information.
to
Via way is not connected to any other member: All ways with role must form a chain where each way is connected with its neighbours. The first via way must be connected to the way with role
via. The last way must be connected to the way with role
from. See previous "Start way not connected with via node" for further details.
to
Via way is not connected to the next via way: See previous paragraph.
Last via way is not connected to the to way: See "Via way is not connected to any other member".
Start way is a loop: A way with role should not be a loop because it ways are split by routing engines at intersections in order to build a routing graph. If such a way is a loop, there are multiple edges where the vehicle might arrive from. Fix it by splitting the way and remove one half from the relation if it is obvious from the history of the relation, aerial or satellite imagery. Consult street-level photographs like Mapillary or Panoramax. Ask the responsible mapper who created or modified the relation using a changeset comment if you are not sure.
from
Via way is a loop: Ways with role should not be a loop. See "Start way is a loop" for further information.
from
End way is a loop: Ways with role should not be a loop. See "Start way is a loop" for further information.
to
Valid restrictions
These layers contain way and node members of relations considered valid by OSMI.
Unsupported
Up to now, following types of restrictions are not validated:
- Conditional restrictions (
type=restriction+restriction:conditional=*): conditional syntax is not validated - Conditional restrictions for certain vehicle types (
type=restriction+restriction:VEHICLE_CLASS:conditional): conditional syntax is not validated restriction=no_entryandrestriction=no_exit: members are not validated- Way are not checked for accessible by vehicles.
- Relations with
restriction:bicycle=stoporgive_wayare ignored.