Osrm Backend Versions Save

Open Source Routing Machine - C++ backend

v5.17.0

6 years ago
  • Changes from 5.16.0:
    • Bugfixes:
      • FIXED: deduplication of route steps when waypoints are used #4909
      • FIXED: Use smaller range for U-turn angles in map-matching #4920
      • FIXED: Remove the last short annotation segment in trimShortSegments #4946
      • FIXED: Properly calculate annotations for speeds, durations and distances when waypoints are used with mapmatching #4949
      • FIXED: Don't apply unimplemented SH and PH conditions in OpeningHours and add inversed date ranges #4992
      • FIXED: integer overflow in DynamicGraph::Renumber #5021
    • Profile:
      • CHANGED: Handle oneways in get_forward_backward_by_key #4929
      • FIXED: Do not route against oneway road if there is a cycleway in the wrong direction; also review bike profile #4943
      • CHANGED: Make cyclability weighting of the bike profile prefer safer routes more strongly #5015
    • Guidance:
      • CHANGED: Don't use obviousness for links bifurcations #4929
      • FIXED: Adjust Straight direction modifiers of side roads in driveway handler #4929
      • CHANGED: Added post process logic to collapse segregated turn instructions #4925
      • ADDED: Maneuver relation now supports straight as a direction #4995
      • FIXED: Support spelling maneuver relation with British spelling #4950
    • Tools:
      • ADDED: osrm-routed accepts a new property --memory_file to store memory in a file on disk. #4881
      • ADDED: osrm-datastore accepts a new parameter --dataset-name to select the name of the dataset. #4982
      • ADDED: osrm-datastore accepts a new parameter --list to list all datasets loaded into memory. #4982
      • ADDED: osrm-datastore accepts a new parameter --only-metric to only reload the data that can be updated by a weight update (reduces memory for traffic updates). #5002
      • ADDED: osrm-routed accepts a new parameter --dataset-name to select the shared-memory dataset to use. #4982
    • NodeJS:
      • ADDED: OSRM object accepts a new option memory_file that stores the memory in a file on disk. #4881
      • ADDED: OSRM object accepts a new option dataset_name to select the shared-memory dataset. #4982
    • Internals
      • CHANGED: Updated segregated intersection identification #4845 #4968
      • REMOVED: Remove .timestamp file since it was unused #4960
    • Documentation:
      • ADDED: Add documentation about OSM node ids in nearest service response #4436
    • Performance
      • FIXED: Speed up response time when lots of legs exist and geojson is used with steps=true #4936
      • FIXED: Return iterators instead of vectors in datafacade_base functions #4969
    • Misc:
      • ADDED: expose name for datasource annotations as metadata #4973

v5.16.4

6 years ago
  • Bugfixes:
    • FIXED: Properly calculate annotations for speeds, durations and distances when waypoints are used with mapmatching #4949

v5.14.2

6 years ago
  • Bugfixes:
    • FIXED #4727: Erroring when a old .core file is present.
    • FIXED #4642: Update checks for EMPTY_NAMEID to check for empty name strings
    • FIXED #4738: Fix potential segmentation fault

v5.14.1

6 years ago
  • Changes from 5.14.0

    • Bugfixes:
      • FIXED: don't use removed alternative candidates in filterPackedPathsByCellSharing
  • Changes from 5.13

    • API:
      • ADDED: new RouteStep property driving_side that has either "left" or "right" for that step
    • Misc:
      • ADDED: Bundles a rough (please improve!) driving-side GeoJSON file for use with osrm-extract --location-dependent-data data/driving_side.geojson
      • CHANGED: Conditional turn parsing is disabled by default now
      • ADDED: Adds a tool to analyze turn instruction generation in a dataset. Useful for tracking turn-by-turn heuristic changes over time.
      • CHANGED: Internal refactoring of guidance code as a first step towards a re-runnable guidance pipeline
      • ADDED: Now publishing Node 8.x LTS binary modules
    • Profile:
      • CHANGED: Remove dependency on turn types and turn modifier in the process_turn function in the car.lua profile. Guidance instruction types are not used to influence turn penalty anymore so this will break backward compatibility between profile version 3 and 4.
    • Guidance:
      • ADDED: New internal flag on "segregated intersections" - in the future, will should allow collapsing of instructions across complex intersection geometry where humans only perceive a single maneuver
      • CHANGED: Decrease roundabout turn radius threshold from 25m to 15m - adds some "exit the roundabout" instructions for moderately sized roundabouts that were being missed previously
    • Docker:
      • CHANGED: switch to alpine 3.6, and use a multistage build to reduce image size
    • Build:
      • FIX: use LUA_LIBRARY_DIRS to propertly detect Lua on all platforms
    • Docs:
      • FIX: clarify description of roundabout exit instructions
    • Bugfixes:
      • FIXED: Fix bug where merge instructions got the wrong direction modifier (PR #4670)
      • FIXED: Properly use the profile.properties.left_hand_driving property, there was a typo that meant it had no effect
      • FIXED: undefined behaviour when alternative candidate via node is same as source node (#4691)
      • FIXED: ensure libosrm.pc is pushed to the correct location for pkgconfig to find it on all platforms
      • FIXED: don't consider empty names + empty refs as a valid name for u-turns

v5.13.0

6 years ago

5.13.0

This release has some exciting new features: We know have relation support in the lua profiles, and support using location dependent data. In addition to that we deprecated CoreCH, since MLD is superior.

  • Changes from 5.12:
    • Profile:
      • Append cardinal directions from route relations to ref fields to improve instructions; off by default see profile.cardinal_directions
      • Support of distance weight in foot and bicycle profiles
      • Support of relations processing
      • Added way:get_location_tag(key) method to get location-dependent tags https://github.com/Project-OSRM/osrm-backend/wiki/Using-location-dependent-data-in-profiles
      • Added forward_ref and backward_ref support
      • Left-side driving mode is specified by a local Boolean flag is_left_hand_driving in ExtractionWay and ExtractionTurn
      • Support literal values for maxspeeds in NO, PL and ZA
    • Infrastructure:
    • Tools:
      • Because of boost/program_options#32 with boost 1.65+ we needed to change the behavior of the following flags to not accept ={true|false} anymore:
        • --use-locations-cache=false becomes --disable-location-cache
        • --parse-conditional-restrictions=true becomes --parse-conditional-restrictions
        • The deprecated options --use-level-cache and --generate-edge-lookup
    • Bugfixes:
      • Fixed #4348: Some cases of sliproads pre-processing were broken
      • Fixed #4331: Correctly compute left/right modifiers of forks in case the fork is curved.
      • Fixed #4472: Correctly count the number of lanes using the delimter in turn:lanes tag.
      • Fixed #4214: Multiple runs of osrm-partition lead to crash.
      • Fixed #4348: Fix assorted problems around slip roads.
      • Fixed #4420: A bug that would result in unnecessary instructions, due to problems in suffix/prefix detection
    • Algorithm
      • Deprecate CoreCH functionality. Usage of CoreCH specific options will fall back to using CH with core_factor of 1.0
      • MLD uses a unidirectional Dijkstra for 1-to-N and N-to-1 matrices which yields speedup.

v5.12.0

6 years ago

This release brings some exciting new changes. On the guidance front we now emit additional exit roundabout and exit rotary instructions for roundabouts. There is now an option to exclude certain road classes at runtime using the exclude= HTTP/Node option. By default we support exclude=motorway, exclude=toll and exclude=ferry in the car.lua profile. Keep in mind that each additional exclude combination impact the pre-processing and memory usage. This option is available both for CH and MLD.

  • Guidance
    • now announcing turning onto oneways at the end of a road (e.g. onto dual carriageways)
    • Adds new instruction types at the exit of roundabouts and rotaries exit roundabout and exit rotary.
  • HTTP:
    • New query parameter for route/table/match/trip plugings: exclude= that can be used to exclude certain classes (e.g. exclude=motorway, exclude=toll). This is configurable in the profile.
  • NodeJS:
    • New query option exclude for the route/table/match/trip plugins. (e.g. exclude: ["motorway", "toll"])
  • Profile:
    • New property for profile table: excludable that can be used to configure which classes are excludable at query time.
    • New optional property for profile table: classes that allows you to specify which classes you expect to be used. We recommend this for better error messages around classes, otherwise the possible class names are infered automatically.
  • Traffic:
    • If traffic data files contain an empty 4th column, they will update edge durations but not modify the edge weight. This is useful for updating ETAs returned, without changing route selection (for example, in a distance-based profile with traffic data loaded).
  • Infrastructure:
    • New file .osrm.cell_metrics created by osrm-customize.
  • Debug tiles:
    • Added new properties type and modifier to turns layer, useful for viewing guidance calculated turn types on the map

v5.11.0

6 years ago

Fresh off the press is OSRM 5.11.0.

The main new feature in this release is support for conditional turn restrictions that use ways as the via elements. Via-way turn restrictions also now work when there is a traffic-light node on the via way.

There were also a collection of guidance improvements, and several cleanups to the build system (the API docs are now buildable again, we don't crash GCC6, and various Visual Studio problems were corrected).

Full Changelog

v5.10.0

6 years ago

The v5.10 release comes with a major feature: via-way turn restrictions. These turn restrictions occur in OpenStreetMap in the form of a restriction relation: (fromWayId, viaWayId, toWayId) and prevent multiple specific turns depending on the way the driver is coming from and going to.

Below are some more notable changes. Please note that in the future we plan to speed up the release process to push out stable and tested releases more often.

Give it a try!

osrm-extract berlin.osm.pbf
osrm-partition berlin.osrm
osrm-customize berlin.osrm
osrm-routed --algorithm=MLD berlin.osrm

Features:


Full Changelog

v5.9.0

6 years ago

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


Full Changelog

v5.8.0

6 years ago

The 5.8 release is focused on long overdue memory and disk usage reductions across the board (on the planet roughly: memory 10% decrease, disk 15% decrease). With some minor issues fixed in the guidance engine this release targets stability and benefits on the infrastructure side. Notable additional changes and features are listed below. The full changelog is here.

Give it a try!

osrm-extract berlin.osm.pbf
osrm-partition berlin.osrm
osrm-customize berlin.osrm
osrm-routed --algorithm=MLD berlin.osrm

Infrastructure

Conditional Turn Restrictions

  • https://github.com/Project-OSRM/osrm-backend/pull/3841 - Added conditional restriction support with parse-conditional-restrictions=true|false to osrm-extract. This option saves conditional turn restrictions to the .restrictions file for parsing later. Added parse-conditionals-from-now=utc time stamp and --time-zone-file=/path/to/file to osrm-contract.

Profiles

API


Full Changelog