[GIS] Does OSM2PO take into consideration turn restrictions

osm2popgrouting

It is supposed that for using Shooting star function in pgrouting, we need to have RULE and TO_COST fields in our table, but OSM2PO hasn't created those fields. what must i do for OSM2PO takes into consideration the turn restrictions?

Best Answer

osm2po exports data compatible with pgRouting's shortestpath and shortestpathastar. Hence turn restrictions are not directly supported. But there is a hidden feature which at least give you some more information: Have a look into the osm2po.config file and search for this line:

#postp.2.class = de.cm.osm2po.plugins.PgVertexWriter

uncomment it by removing the "#" and osm2po will provide a second table of vertices. In this table you'll find a rather informational field called "restrictions". You'll recognize values like this one

-9231_12704+10841_12704

9231, 12704, 10841, 12704 denote IDs in the network table. A minus (-) means "NoTurn" a plus (+) means "OnlyTurn" In words: Coming from Segment ID 9231 you must not turn to 12704 and coming from ID 10841 you may only turn to 12704, other combinations in this link are not allowed.

The latter is the most difficult part because you'll have to analyze the entire crossing in order to change OnlyTurns into NoTurns.

In addition these rules only refer to the corresponding vertex (table row).

You see, the only missing part is a small SQL/StoredProcedures which does this job ;-)

Related Question