[OSM-talk] [Talk-us] Am I mapping this wrong, or should the router be fixed for this?

Maarten Deen mdeen at xs4all.nl
Thu Jul 30 13:15:27 UTC 2015

On 2015-07-30 14:52, Greg Troxel wrote:

> If there were to be a penalty (distinct from a time/distance estimate),
> it should perhaps be for getting off a major road and getting back on.
> But, one could argue that this would be kludgy, and if one wanted that,
> the real issue would be that the underlying cost functions are wrong.
> Perhaps in addition to the time spent at stop signs, lights, etc. there
> should be a cost associated with the cognitive effort and accident 
> risk,
> to be minimized, so that staying on the highway is treated as the
> rational choice (that it probably actually is).

Penalties and costs are the basis of routing engines, not distance and 
That is why OSMAND (and OSRM) make such silly mistakes as routing from 
the motorway to an offramp and straight on to the onramp to join the 
same motorway. Because both have the same speed limit and the offramp is 
slightly shorter it would be faster?
Wrong. Faster is not the issue. The cost for using an offramp should be 
higher than taking the motorway. Probably even the action of changing 
from a certain class of way to the _link class (or indeed any lower 
class) should incur a penalty.
A posted speed limit is just that: a legal maximum speed, not an actual 
driven speed. And therefore of only limited use to a router. Sure, a 
road with a posted speed limit of 30 will be slower than one with 120, 
but it is wrong to assume that two roads with a speed limit of 120 will 
be equally fast and therefor the shortest is always the better.

I too have the feeling that that notion does not live within the OSMAND 
developers (nor the OSMR developers).

IMHO brouter.de does this very nicely. When I see that by tinkering with 
the costs of certain road classes I can get a bicycle route exactly like 
how I would drive it is an indication to me that it is a very life-like 


More information about the talk mailing list