Skip to content

OSRM v5.9.0

Compare
Choose a tag to compare
@daniel-j-h daniel-j-h released this 19 Jul 17:05
· 1452 commits to master since this release

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 an exits property to the response's RouteStep. The companion project osrm-tag-rewriter now also re-writes exit numbers / names into junction:ref.
  • #4252 - stxxl (libstxxl-dev) is optional now but still on by default. Disable it via cmake .. -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 extra UseLane 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-style construction=* and proposed=* ways.

Full Changelog