OSRM v5.9.0
With the v5.9 release we continue to stabilize our Multi-Level Dijkstra (MLD) pipeline which we introduced in v5.7 allowing for incredibly fast traffic updates while still being able to handle requests in the milliseconds. In addition to feature parity for the Contraction Hierarchies (CH) table plugin in MLD this release implements a brand new alternative routes algorithm which we tailored specifically for MLD making heavy use of its partitioner. We also radically decreased our preprocessing times by partially removing STXXL, without any significant memory increase.
Other great features of this release is the support for exit numbers and user-defined classes in the response.
Give it a try!
osrm-extract berlin.osm.pbf
osrm-partition berlin.osrm
osrm-customize berlin.osrm
osrm-routed --algorithm=MLD berlin.osrm
- #4202 - Implements the table plugin for MLD. The pull request contains some performance measurements.
- #3905 and #4047 - Implements multiple alternative routes for MLD: you can now request multiple alternative routes. Please read the issue and pull request for details, images and gifs.
- #4215 - Implements exit numbers / names. Picks up the
junction:ref
way tag; adds anexits
property to the response'sRouteStep
. The companion project osrm-tag-rewriter now also re-writes exit numbers / names intojunction:ref
. - #4252 - stxxl (
libstxxl-dev
) is optional now but still on by default. Disable it viacmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_STXXL=Off
. Processing will then happen in memory which should be fine unless you try to process the planet on your toaster. - #4204 and #4290 - Adds a
classes
property to the response intersection array indicating a road's class. Can be set in the profiles on each way. The use-case for this is flagging a road as a toll, ferry or motorway road class which clients can than pick up from the response. - #4260 and #4296 - Deprecates the
UseLane
instruction which was needed for lane anticipation (guide users in the correct lane for multi-hop steps) before there was an intersection array in the response. Lane anticipation will continue to constrain lanes in the response intersection array but we will no longer emit an extraUseLane
instruction. In addition lane anticipation will now trigger based on a distance threshold of some hundreds of meters (depending on numbers of lanes to cross). - #4258 - In addition to respecting
highway=construction
tags we now discard old-styleconstruction=*
andproposed=*
ways.