[OSRM-talk] OSRM 5.5.0 released
patrick.niklaus at student.kit.edu
Thu Dec 15 14:05:38 UTC 2016
we just released the 5.5.0 release of OSRM featuring a lot of
refactoring and bug fixes. Here are the highlights:
- Added a more accurate weight penalty for ways tagged with
`oneway=alternating`. These tags are for narrow bridges or tunnels on
which the direction of traffic alternates every `n` minutes and are
sometimes traffic light controlled.
- Brought guidance support in line with guidance on roundabouts for
`junction=circular` tagged junctions. These junctions can be thought
of as roundabouts where traffic within the roundabout does not always
have right of way
- Support for `destination:forward`, `destination:backward`,
`destination:ref:forward`, `destination:ref:backward` also in
combination with `oneway=-1` tags.
- Polished up turn angle classification by detecting offsets due to
lanes and minor variations due to data modelling inaccuracies. Turn
angles now better resemble what users experience.
- More accurate classification of sliproad scenarios When the maneuver
is obvious, we now emit a single instruction for turning onto and then
immediately off of sliproads.
- Improvements to the name change heuristic reduce new name announcements.
- We now support precision 5 (default) and 6 polyline geometries with
the new parameter, `geometries=polyline6`.
- Improvements to the Hilbert space filling curve contribute to
improvements to geospatial lookup performance.
- The ever useful Debug Map  now displays turn penalties at higher
- We now provide online documentation  for the API (requests,
- Shared memory now supports multiple clients (multiple instances of
libosrm). However there is a known bug when doing frequent data
switches, see #3455
- Improved error reporting, especially for I/O and file loading.
The detailed changelog can be found at the end of this email. As
always this is accompanied by a new node-osrm package.
- Changes from 5.4.0
- `osrm-datastore` now accepts the parameter `--max-wait` that
specifies how long it waits before aquiring a shared memory lock by
- Shared memory now allows for multiple clients (multiple
instances of libosrm on the same segment)
- Polyline geometries can now be requested with precision 5 as
well as with precision 6
- the car profile has been refactored into smaller functions
- get_value_by_key() is now guaranteed never to return empty
strings, nil is returned instead.
- debug.lua was added to make it easier to test/develop profile code.
- `car.lua` now depends on lib/set.lua and lib/sequence.lua
- `restrictions` is now used for namespaced restrictions and
restriction exceptions (e.g. `restriction:motorcar=` as well as
- replaced lhs/rhs profiles by using test defined profiles
- Handle `oneway=alternating` (routed over with penalty)
separately from `oneway=reversible` (not routed over due to time
- Handle `destination:forward`, `destination:backward`,
`destination:ref:forward`, `destination:ref:backward` tags
- Properly handle destinations on `oneway=-1` roads
- Notifications are now exposed more prominently, announcing
turns onto a ferry/pushing your bike more prominently
- Improved turn angle calculation, detecting offsets due to
lanes / minor variations due to inaccuracies
- Corrected the bearings returned for intermediate steps -
- Improved turn locations for collapsed turns
- Sliproad classification refinements: the situations we detect
as Sliproads now resemble more closely the reality
- Trip Plugin
- changed internal behaviour to prefer the smallest
lexicographic result over the largest one
- fixed a bug where polyline decoding on a defective polyline
could end up in out-of-bound access on a vector
- fixed compile errors in tile unit-test framework
- fixed a bug that could result in inconsistent behaviour when
- fixed a bug that could result in crashes when leaving a ferry
directly onto a motorway ramp
- fixed a bug in the tile plugin that resulted in discovering
invalid edges for connections
- improved error messages when missing files during traffic
- For single coordinate geometries the GeoJSON `Point` encoding
was broken. We now always emit `LineString`s even in the
one-coordinate-case (backwards compatible) (#3425)
- Debug Tiles
- Added support for turn penalties
- Internal/Shared memory datafacades now share common memory
layout and data loading code
- File reading now has much better error handling
- Progress indicators now print newlines when stdout is not a TTY
More information about the OSRM-talk