Itinero

Open source route planning for .NET

 

by

 

Ben Abelshausen (@xivk)

What?

A routing engine as in road networks.

What?

Originally built for logistical optimization

Main goals

An open-source routing engine that's:

- Easy to use & setup.
- Fast.

- Extensible.

- Reliable.




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);

 

Main features

 

- 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.

Why .NET

- Was the tech used at the time.
- Good tradeoff between performance and ease of use.

 

Biggest disadvantage at the time: windows-focus!

Performance (UK)


 - 10.000x10.000 matrix in 60s.
 - ~5-10ms per route.
 - ~100-500ms on mobile.

 - UK network takes about 2GB ram.

OpenStreetMap (OSM)

- Best open map

- Available worldwide.

- Called 'wikipedia of maps'

 

 

"OpenStreetMap (OSM) is a collaborative project to create a free editable map of the world."

Open source (!)

- Since 2011, first OsmSharp, later Itinero.
- 5 contributors > 90% myself.

 

Why open source:

 

Trust in the project!

itinero.tech

- One person company, many projects.

- ~80.000€/yr

Itinero

By Ben Abelshausen

Itinero

  • 1,176