4 ms·
I'm paid to work on navigation software: http://www.project-osrm.org/ http://www.project-osrm.org/ The answer to your question is: because it's hard to make so
by danpat 10y ago
I'm paid to work on navigation software: http://www.project-osrm.org/ http://www.project-osrm.org/
The answer to your question is: because it's hard to make some of these adjustments on-the-fly and still have reasonably fast queries.
On embedded devices, space and processing power are limited - so you need to perform optimizations to speed things up so it's usable. These optimizations usually limit the flexibility of features like you're requesting. That's a basic trade-off.
For server-side routing solutions, you need response time to be fast so you can scale - again, you need to optimize your data and you lose flexibility. Route calculations are CPU heavy, it gets very expensive to serve lots of users if your route calculations aren't fast.
There's a lot of algorithm research being done in this space - the last 5 years have seen some really smart new approaches. However these haven't been deployed commercially in very many places.
If you'd be happy with 10s of seconds to calculate a route on your phone (offline), then you can have all the flexibility you want :-) This is rarely desirable, so very few implementations are as flexible as you want.
- CamperBob2 10y agoJust having the option to specify "No left turns" would be immensely helpful. I believe UPS has done this for years to streamline their delivery-truck routes, albeit probably not in real time.
- danpat 10y agoJust for kicks, I used OSRM and added a large time penalty for taking left-hand turns. Here's the kind of route you get: http://imgur.com/VW63fq1 http://imgur.com/VW63fq1 In reality, the metric probably needs to be a lot more complex than what I hacked together here. It's actually more like "don't turn left across traffic, left turns are ok onto one-way streets, etc", my metric was simply based on turn angle, and there are a bunch of scenarios where that falls down. The rule probably works well in travelling salesman-like scenarios - you want to optimize the route to deliver multiple packages. Having played with adjusting these kinds of metrics quite a bit, it's never as easy as you want :-(