User Tools

Site Tools


routing_in_transportation_networks

This is an old revision of the document!


Users

Server API

Doc

Time and distance

# from Timisoara to Sevilla
curl http://10.101.21.34:5000/route/v1/driving/21.2250,45.7557;-5.9251,37.3682?overview=false
# coordinates are always lon/lat

Geometries

# from Graz to Vienna

curl "http://10.101.21.34:5000/route/v1/driving/9.7303,47.4174;15.4571,47.0503?overview=false"

Future work

Admin

Preprocess

Hardware

You will need a resourceful server with at least

  • 200G RAM for planet
  • 60G RAM for Europe.

I used flexo for preprocessing CH.

Software

Prerequisites

git clone https://github.com/Project-OSRM/osrm-backend.git
cd osrm-backend/
mkdir -p build
cd build/
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build .

wget http://planet.osm.org/pbf/planet-latest.osm.pbf

Profiles define routing behaviour (turn restrictions etc).

Then decide which routing type you want: Dijkstra or Contraction hierarchies:

Contraction Hierarchies (CH)

osrm-extract -p profiles/car.lua the.osm.pbf
osrm-contract the.osrm

Preprocessing the planet file takes about

  • ~3 hours for extracting planet data
  • ~10 for contracting planet data

Multi-Level Dijkstra (MLD)

osrm-extract -p profiles/car.lua  the.osm.pbf
osrm-partition the.osrm
osrm-customize the.osrm

Deploy service

Hardware

A tinier server is sufficient here.

For planet you'll need > 100G RAM.

For Europe I used one with 64G RAM.

Software

Prerequisites

git clone https://github.com/Project-OSRM/osrm-backend.git
cd osrm-backend/
mkdir -p build
cd build/
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build .

# and install

sudo cmake --build . --target install

# uninstall is possible too

sudo cmake –build . –target uninstall

Contraction Hierarchies (CH)

osrm-routed --algorithm=ch  --max-table-size=1000  the.osrm # to allow for bigger distance matrix

Multi-Level Dijkstra (MLD)

osrm-routed –algorithm=MLD the.osrm
routing_in_transportation_networks.1534927276.txt.gz · Last modified: 2018/08/22 10:41 by mantis