[OSRM-talk] OSRM 5.5.0 released

Patrick Niklaus 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 [1] now displays turn penalties at higher
zoom levels.
- We now provide online documentation [2] for the API (requests,
responses, examples).
- 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.


# 5.5.0

  - Changes from 5.4.0
    - API:
      - `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
    - Profiles
      - 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
    - Guidance
      - 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 -
requires reprocessing
      - 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
    - Bugfixes
      - 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
collapsing instructions
      - 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
updates (#3114)
      - 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
    - Internals
      - Internal/Shared memory datafacades now share common memory
layout and data loading code
      - File reading now has much better error handling
    - Misc
      - Progress indicators now print newlines when stdout is not a TTY

[1] http://map.project-osrm.org/debug/#15.93/52.5145/13.3516
[2] http://project-osrm.org/docs/v5.5.0/api

More information about the OSRM-talk mailing list