osrm - open source routing machine

Download OSRM - Open Source Routing Machine

If you can't read please download the document

Upload: frederic-rodrigo

Post on 07-Jan-2017

320 views

Category:

Internet


3 download

TRANSCRIPT

OSRM

Open Source Routing Machine

SotM-France 2016Clermont-Ferrand

Frdric Rodrigo CC BySA 2016

Chemin le plus court

Algorithme de Dijkstra1959

A*1968

Dijkstra guid

https://en.wikipedia.org/wiki/File:Dijkstras_progress_animation.gifhttps://commons.wikimedia.org/wiki/File:Astar_progress_animation.gif

Chemin le plus court

Contraction de Hirarchies2008 Karlsruhe Institut fr Theoretische (KIT)

Pr-calculer les raccourcis

https://www.mjt.me.uk/posts/contraction-hierarchies/

tat de l'art

Route Planning in Transportation Networks http://arxiv.org/abs/1504.05140

Stratgie

Vitesserponse

Configurationdynamique

CHA*OSRM (KIT, MapBox)

Valhalla (Mapzen)(double A* multi-niveau)

GraphHopper

OSRM

API v4 v5

KIT

MapBox

OSRM / route

http://router.project-osrm.org/route/v1/car/-76.9964,38.89711;-77.03647,38.90840

{ "code":"Ok", "routes":[{ "legs":[{ "steps":[], "duration":323.9, "distance":4507.3 }], "geometry":"}allF`i}tMhLArDxLGhNqJj[M|HuEzEaK~[eRvx@gD@EpMuJn`@mCrIuAfBHhAx@n@?lXePA", "duration":323.9, "distance":4507.3 }], "waypoints":[{ "name":"7th Street Northeast", "location":[ -76.996167, 38.897111 ]}, { "name":"16th Street Northwest", "location":[ -77.036521, 38.9084 ]}]}

stepleg

route

OSRM / table

http://router.project-osrm.org/table/v1/car/-76.9964,38.89711;-77.03647,38.90840

{ "code":"Ok", "durations":[ [0, 323.9], [344.2, 0] ], "destinations":[{ "name":"7th Street Northeast", "location":[ -76.996167, 38.897111 ]}, { "name":"16th Street Northwest", "location":[ -77.036521, 38.9084 ]} ], "sources":...}

OSRM / match

http://router.project-osrm.org/match/v1/car/-76.9964,38.89711;-77.03647,38.90840

OSRM / trip

http://router.project-osrm.org/trip/v1/car/-76.9964,38.89711;-77.03647,38.90840;76.9878,38.8246

Problme du voyageur de commerce

{ "code":"Ok", "trips":[{ "legs":[{ "summary":"", "duration":344.2, "distance":4536.7 }, { "summary":"", "duration":323.9, "distance":4507.3 }], "geometry":"ohnlFfeeuMb\\BBw~@xCyMfD?L}M|Lse@}@{DQ_D?ilBjR?hLArDxLGhNqJj[M|HuEzEaK~[eRvx@gD@EpMuJn`@mCrIuAfBHhAx@n@?lX", "duration":668.1, "distance":9044 }],...

OSRM / tile
http://map.project-osrm.org/debug/

Mise en place

Facile!

Profils (car, bicycle, foot)

osrm-extract

osrm-contract

osrm-routed

speed_profile = { ["motorway"] = 90, ["trunk"] = 85, ["primary"] = 65, ["secondary"] = 55,

surface_speeds = { ["grass"] = 40, ["unpaved"] = 40,

properties.u_turn_penalty = 20properties.traffic_signal_penalty = 2

function node_function (node, result)

function way_function (way, result) bridge, tunnel, oneway, lanes...

OSRM en production

Rapide: beaucoup de mmoire

Un serveur OSRM par profil

Mise jour donnes sans interruption de service

Utilisable en lib sans serveurmaps.me

binding node.js

Futur

Court termeRsultat pas uniquement au plus rapide

Matrice de temps et de distance

Respect de restriction (acces=destination)

Possible long termeIsochrone

Multi-profil