This guest article by Tim Hirrel takes a look at a new method for implementing turn restrictions in GIS street data. Turn restrictions (e.g. no right turn allowed or no u-turn allowed) are an important component of network data used for driving directions and logistics.
Tim Hirrel is the creator of TdhGIS, a free GIS application for performing spatial analysis on vector data.
There are many possible methods for specifying turn restrictions at intersections, but why not use a method that requires no new data conventions or model logic?
Network models include links that define a travel route and nodes that connect links. Links may allow travel in both directions of travel or in just one direction. The default is that travel may change at a node to any link connected to the node, as long as travel is allowed in the resulting direction for the link. Turn restrictions are an attempt to address the fact that this default does not always hold true, sometimes changing travel is not allowed to a link that is connected at a node.
With commonly available data sources (e.g. OpenStreetMap), turn restrictions constitute an entirely new set of data that specifies what turns may or may not be allowed at a node (see http://wiki.openstreetmap.org/wiki/Relation:restriction for a description of turn restriction data in OSM). This data can become rather cumbersome and difficult to implement both within the data and the model logic.
A different approach for turn restrictions can be implemented without creating any new data conventions or model logic. This approach starts with the realization that roadways can be modeled as parallel, unidirectional links rather than a single bidirectional link. The parallel, unidirectional approach is appropriate for a divided highway, for example, where a vehicle cannot cross lanes going in the opposite direction. This approach, along with a carefully constructed topology, also allows the elegant modeling of intersections with turn restrictions.
In the figure above, all links are unidirectional as indicated by the arrows. The red circles indicate nodes. When links cross other than at nodes, no turns are allowed. Using the configuration shown, any conceivable turn restriction can be implemented by simply closing a single link. For example:
- No U-Turn from southbound to northbound can be implemented by closing link 1.
- No Left Turn from westbound to southbound can be implemented by closing link 10.
- No Right Turn from northbound to eastbound can be implemented by closing link 4.
This approach can also be easily implemented for intersections composed of more or fewer than 8 unidirectional intersecting links. The unidirectional intersecting links may be joined into bidirectional links away from the intersection, if appropriate. Time of day turn restrictions may be implemented by adding time of day information to the appropriate link status.
In summary, using unidirectional links and appropriate topology is recommended as a method for unambiguously modeling turn restrictions while requiring no new data conventions or model logic.