[GIS] Database design: road topology in GIS

databasedatabase-designpostgistransportation

Is there a standard or a best practice way to store certain features about roads:

Road directionality:

  • One way streets: Roads going in one direction only
  • Center Turning lanes: roads that exist between two lanes, that either lane can use to turn left or right such as this
  • Highway interchange Ramps and merge lanes

Road Functionality:

  • Intersection layout (signalized or unsignalized):
    • Incorporating the different allowed and disallowed patterns of an intersection into a db, such as:
    • No-U turns
    • Turn left on green (or not)
    • green cycles and times
    • Actuated versus non-actuated approaches in intersections
    • Right of way rules: Some intersections might have different Right of Way rules than typical. Take for example a hilly road, where everyone must stop at the stop sign, except for the people who are traveling uphill. They do not have a stop sign, so all traffic must yield to them.

Best Answer

Unfortunately, some of those feature are deeply dependent of the piece of software you use.

For example, let's take the U-Turns in ArcGIS and PGRouting. In ArcGIS, it is something you can choose as an option, in PGRouting, it is nested in the code.

On way street can be processed in two way. The are set up part of the graph with a very high cost (PGRouting) or simply removed from the graph (ESRI, which makes more sense)

Turns cost of prohibition are anyway a set of rules you need to know and that are really data dependent. Rule could be modified dynamically in PGRouting, but not in ArcGIS as far as I know (my last use of Network Analyst was on 9.3 and at that point, the graph had to be recompiled every time you make a change).

So you should take a look at what is done on both PGRouting and ArcGIS. It will determine a lot of how you need to store things.

http://support.esri.com/en/downloads/datamodel/detail/14 http://www.pgrouting.org/documentation.html