I like to collect the known but not fixed issues of routing engines/profiles in ignoring access tags.
Ignoring these values can happen for different reasons.
Software bug
New tagging scheme
Different interpretation of access tags
Different order of interpretation of implicit defaults and exceptions
Country-specific exceptions
Ignore common mapping errors
Ignore common signage errors
Ignore because the target group is not interested in the access bans.
Some errors may turn out to be correct, because e.g. the bike should be pushed instead of ridden. So please check the travel time. And please check the issue at different locations.
I want to collect such issues so that we can better understand them and find weaknesses in the documentation. And of cause we should try to get the real bugs fixed in the data, documentation or software. Please report new found bugs yourself!
Issues found:
GraphHopper Bicycle (I guess both is intentionally)
I would say this is only relevant to collect them in the wiki if a routing engine indicated that they don’t intent to fix an issue. Otherwise it may be better to just report it to them (with a use case) so they can fix the issue.
Graphhopper and OSRM seem to ignore bicycle:forward and bicycle:backward tags. I‘ll analyze the issue further and then open tickets at their issue trackers.
It’s important to make clear which implementation of an algorithm has a problem. Graphhopper deployed on site A may have a problem, but site B may not, because of differenr routing parameters used.
Yes, report them to the relevant issue trackers rather than putting them on an obscure wiki page. I don’t think Komoot has an issue tracker but the others do.
As @SomeoneElse says, the problems are usually with the default profiles of the routing engines, not with the routing engines themselves. cycle.travel uses OSRM under the hood but has entirely different access parsing.
And most importantly just because we’ve come up with a scheme to tag some obscure facet of access doesn’t mean it is practical and feasible to implement support for it (for example conditional access and other weird things).
But I think the mapper should know what is implemented in the most relevant router and what is not.
There are often different ways to model the situation. (I guess the most simplest way is mostly the best way.)
There is typically a “misunderstanding” of “*=destination” - For this one has to understand how Routing and their respective algorithms work, and how the type of data is mapped into the graph. Basically the routing is done my searching for the “cheapest” solution to a graph problem. The cost is on the edges and these can be different depending on transportation type, maxspeed etc.
Now to get the routing to “most likely” avoid *=destination tagged edges one simply increases their “cost”. But this is not a real solution this is only an approximation. As long as there is a cheaper route one will get a solution around the *=destination tagged roads. But there is always a sweet spot between something expensive with *=destination and the road around. You cant make it “infinitly” expensive to go in there, then the routing will possibly even worse by forcing the router to ALWAYS enter the road on the shortest snippet.
So - even if we tag stuff as *=destination - in some corner cases you will see through traffic when there is no “good” solution to avoid it.
OSRM’s automated tests show that it does respect bicycle:forward and bicycle:backward:
Note that OSRM sometimes produces routes that require you to dismount and push your bike against one-way traffic in the opposite direction, under the assumption that there’s a shoulder, sidewalk, or verge allowing you to do that.
There’s a proposal to apply the same logic to streets that prohibit cycling in one direction:
One idea would be not to penalise distance on the *=destination edges, but to insert “virtual edges” on ENTERING a *=destination road segment (read: subgraph - 2 virtual edges, oneways) and make that very expensive.
When your destination is in one of those segments/subgraphs its the same cost independent from where you enter, but it does not make a difference how much distance you travel on such a segment/subgraph.
Shouldnt. Typically you map an “address” to a point on a reachable point on the road network which will be reached disregarding the cost.
It may be something else when you assume routers have some “flight of a bird” capabilities, beeing able to disregard the graph altogether using a high cost.
And a high cost on entering that area is a NOOP as it doesnt make a difference from WHERE you enter. Its a one time fee.