-
Notifications
You must be signed in to change notification settings - Fork 3.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support way as via role in turn restriction #483
Comments
By "routing relation" you mean a turn restriction (relation), don't you? As far as I know, turn restrictions with a "via" way (or multiple via ways) are not supported by OSRM for now... |
Yes. OSRM supports only simple 3-element relations (Way)->(Node)->(Way). |
Yes, I mean turn restriction relation. |
Yes, at some point in the future. |
There are 2593 turn restrictions OSRM isn't using because of this bug: http://taginfo.openstreetmap.org/relations/restriction#roles |
There was an announcement on the osm-dev mailing list about the release of OSRM v0.3.3. I thought that this bug was fixed for that release. Apparently it's not. Here's a solution, I think: At least for simple turn restrictions containing a single way with a "via" role, these can be decomposed in the routing graph as several turn restrictions each with a node with a "via" role. Let's say there's a routing graph with nodes A, B, C, D and edges AB, BC, and CD. The 3 edges are in a turn restriction with AB as "from", BC as "via" and CD as "to". You can then decompose this as follows:
|
Do you have any idea when this might be in the plans? I'm running into this problem trying to convert some 3rd party datasets into the normalized file structures. This is also a problem when I try to load pgRouting graphs because we support multiple via nodes there also and my convertor has no way to convert the restriction table to the OSRM normalized files without support for this. In pgrouting, we defined restrictions as: cost, to_node, via_nodeN, ..., via_node1, from_node Where we could either apply an additional cost to make the restricted turn or by setting the cost to -1 to forbid it all together. The way to understand this restriction definition is: If you are at to_node, and your parent node is via_nodeN and its parent is via_node... and its parent node is via_node1 and its parent node is from_node, then apply the cost or disallow the path. So we obviously apply these during in Dijkstra solver. |
My short comment. |
There are now 3570 turn restrictions OSRM isn't using because of this bug: http://taginfo.openstreetmap.org/relations/restriction#roles |
It is not a bug, but the feature will be implemented in due time. |
We know Dennis that it is not so easy. We only want to let you know that it is important feature and many people wait for this. So treat it only as a friendly push in that direction :-) |
@DennisOSRM Any idea/update on where this might fit into your plans time wise? |
OSRM does not route properly through crossing http://osrm.at/1y3.
Probably the reason is applying role "via" in routing relation "only_straight_on" not on node but way. The tagging in OSM database seems to be used correctly but routing algorithms do not include such situation.
Another routing service provides correct driving directions.
The text was updated successfully, but these errors were encountered: