Maneuvers and Turn Restriction Definitions - pgRouting/pgrouting GitHub Wiki

In general, there are various ways that turn restrictions can be defined in various data sets. In fact in a more abstract definition we might think of a vehicle and define what maneuvers that vehicle is restricted from. These maneuvers can be restricted by time of day, class of vehicle, and via legal or physical restrictions. There may be restrictions based on tool booth, closed due to construction, gates or bollards, direction of travel, carpool, turn restriction, access restriction, or others.

Since pgRouting does not currently support time of day based routing, I will only mention these restrictions in passing to give some context for future design consideration. Also, we are primarily looking at turn restrictions since the other restrictions are handled in other ways within pgRouting.

pgRouting TRSP restrictions

TRSP definitions are edge based restrictions.

  • target_id - edge id of a target edge that we are arriving at
  • cost - cost to follow this restriction (-1 should mean the maneuver is prohibited)
  • from_id_list - comma separated list of edge ids where the 1st is the parent of the target, the 2nd is the parent of the 1st, and so on.

A commercial data set

This definition is also edge based restrictions.

The following structure can easily be extract form a few commercial data sets I have worked with.

  • restriction_id - unique id for this restriction
  • restriction_type - type of restriction: normal, time, class
  • class_list - list of vehicle classes this applies to
  • seq_numbers - used to order edges when multiple edges are involved in restriction
  • edge_id - edge id for in this restriction

OSM restrictions

OSM supports both edge-node-edge and edge[-node-edge]+ restrictions. (correct?)

TODO

Ordnance Survey restrictions

The open source data does not include turn restrictions

See a feature comparison between "Roads" and "Routing and Asset Management" products here:

TODO

INEGI restrictions

TODO

digiroad Restirctions

Kääntymisrajoitus (Restricted manoeuvre) table

  • id - unique manoeuvre id
  • kohd_id - object link id (dest link id?)
  • kuntakoodi - the municipality code
  • lahd_id - source link id
  • lisatiedot - additional information
  • moukkauspv - mod date
  • poikkeus - exception
  • voim_aika - end of time

others?

TODO