Open Source Routing Machine - C++ backend
trimShortSegments
#4946
DynamicGraph::Renumber
#5021
straight
as a direction #4995
osrm-routed
accepts a new property --memory_file
to store memory in a file on disk. #4881
osrm-datastore
accepts a new parameter --dataset-name
to select the name of the dataset. #4982
osrm-datastore
accepts a new parameter --list
to list all datasets loaded into memory. #4982
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
osrm-routed
accepts a new parameter --dataset-name
to select the shared-memory dataset to use. #4982
Changes from 5.14.0
filterPackedPathsByCellSharing
Changes from 5.13
driving_side
that has either "left" or "right" for that steposrm-extract --location-dependent-data data/driving_side.geojson
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.profile.properties.left_hand_driving
property, there was a typo that meant it had no effectThis 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.
profile.cardinal_directions
distance
weight in foot and bicycle profilesway:get_location_tag(key)
method to get location-dependent tags https://github.com/Project-OSRM/osrm-backend/wiki/Using-location-dependent-data-in-profiles
forward_ref
and backward_ref
supportis_left_hand_driving
in ExtractionWay
and ExtractionTurn
.osrm.core
file since CoreCH is deprecated now.={true|false}
anymore:
--use-locations-cache=false
becomes --disable-location-cache
--parse-conditional-restrictions=true
becomes --parse-conditional-restrictions
--use-level-cache
and --generate-edge-lookup
turn:lanes
tag.osrm-partition
lead to crash.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.
exit roundabout
and exit rotary
.exclude=
that can be used to exclude certain classes (e.g. exclude=motorway, exclude=toll).
This is configurable in the profile.exclude
for the route/table/match/trip plugins. (e.g. exclude: ["motorway", "toll"]
)excludable
that can be used to configure which classes are excludable at query time.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..osrm.cell_metrics
created by osrm-customize
.type
and modifier
to turns
layer, useful for viewing guidance calculated turn types on the mapFresh 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).
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:
(from, via, to)
way restrictions where from
, via
and to
are ways in addition to (from,via,to)
node restrictions we always handled. These turn restrictions prevent turns from a way via a specific way onto a way:
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
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
.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.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.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).highway=construction
tags we now discard old-style construction=*
and proposed=*
ways.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
osrm-extract
, osrm-contract
, osrm-routed
, and others) now return error codes and legible error messages for common problem scenarios. You can find the list of error codes here..osrm.nodes
file was renamed to .nbg_nodes
and .ebg_nodes
was added.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
.approaches
parameter to the API. The use-case is to approach a waypoint on the side of the road that deposits or picks up your passenger without needing to cross the road and then continue routing you without issuing a u-turn. Read about it here.polyline6
option to the HTTP API for sending coordinates in the request polyline encoded with a precision of 6.