Open source route planning for .NET
Ben Abelshausen (@xivk)
A routing engine as in road networks.
Originally built for logistical optimization
An open-source routing engine that's:
- Easy to use & setup.
var route = router.Calculate(Vehicle.Car.Fastest(), 51.2679702f, 4.8019051f, 51.2610084f, 4.7807210f);
var profile = Vehicle.Car.Fastest(); var start = router.Resolve(profile, 51.2679702f, 4.8019051f); var end = router.Resolve(profile, 51.2610084f, 4.7807210f); var result = router.TryCalculate(profile, start, end);
- Dykstra, A* (Very flexible, relatively slow)
- Contraction Hierarchies (Very (very) fast)
- Configurable routing profiles in lua.
- Offline routing on mobile (Xamarin)
- Cross platform (.NET Core)
- Scales, handles the entire world.
- Was the tech used at the time.
- Good tradeoff between performance and ease of use.
Biggest disadvantage at the time: windows-focus!
- 10.000x10.000 matrix in 60s.
- ~5-10ms per route.
- ~100-500ms on mobile.
- UK network takes about 2GB ram.
Open source (!)
- Since 2011, first OsmSharp, later Itinero.
- 5 contributors > 90% myself.
Why open source:
Trust in the project!
- One person company, many projects.
By Ben Abelshausen