Skip to content

Tags: stecyr/osrm-backend

Tags

v5.5.0

Toggle v5.5.0's commit message
Release OSRM 5.5.0

Tags

- Added a more accurate weight penalty for ways tagged with [`oneway=alternating`](http://wiki.openstreetmap.org/wiki/Tag:oneway%3Dalternating). 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`](https://wiki.openstreetmap.org/wiki/Tag:junction%3Dcircular) tagged junctions. These junctions can be thought of as roundabouts where traffic within the roundabout does not always have right of way (examples [[1]](http://www.openstreetmap.org/way/288767318#map=19/52.51863/13.45327), [[2]](http://www.openstreetmap.org/way/37294337#map=19/52.49906/13.41832)).
- Support for [`destination:forward`, `destination:backward`, `destination:ref:forward`, `destination:ref:backward`](http://wiki.openstreetmap.org/wiki/Key:destination) also in combination with [`oneway=-1`](http://wiki.openstreetmap.org/wiki/Key:oneway) tags.

Guidance

- 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 (examples [[1]](http://www.openstreetmap.org/way/33912098#map=19/52.53781/13.34441), [[2]](http://www.openstreetmap.org/way/4597207#map=19/52.52725/13.38695)). 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.

API

- We now support precision 5 (default) and 6 polyline geometries with the new parameter, `geometries=polyline6`.

Infrastructure

- Improvements to the Hilbert space filling curve contribute to improvements to geospatial lookup performance.
- The ever useful [Debug Map](http://map.project-osrm.org/debug/#15.93/52.5145/13.3516) now displays turn penalties at higher zoom levels.
- We now provide [online documentation](http://project-osrm.org/docs/v5.5.0/api/) for the API (requests, responses, examples).
- Shared memory now supports multiple clients (multiple instances of libosrm).
- Improved error reporting, especially for I/O and file loading.

- API:
  - `osrm-datastore` now accepts the parameter `--max-wait` that specifies how long it waits before aquiring a shared memory lock by force
  - 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 `except=motorcar`)
  - 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 dependence)
  - 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 (Project-OSRM#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) (Project-OSRM#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
  - Prettier API documentation now generated via `npm run build-api-docs` output `build/docs`

v5.5.0-rc.5

Toggle v5.5.0-rc.5's commit message
Release 5.5.0 RC5

- Changes from 5.5.0 RC4
  - Bugfixes
    - Fix invalid assertion in coordinate extraction
    - Fix pruning heuristic for self-loops in contractor

- 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 force
    - 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 `except=motorcar`)
    - 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 dependence)
    - 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 (Project-OSRM#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) (Project-OSRM#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
    - Prettier API documentation now generated via `npm run build-api-docs` output `build/docs`

v5.5.0-rc.4

Toggle v5.5.0-rc.4's commit message
Release OSRM 5.5.0 RC4

- Changes from 5.5.0 RC4
  - Bugfixes
    - For single coordinate geometries the GeoJSON `Point` encoding was broken. We now always emit `LineString`s even in the one-coordinate-case (backwards compatible) (Project-OSRM#3425)
    - Fixed updating the node-based-edge weight for contraction
    - Fixed switching datasets when having multiple processes reading from shared memory

- 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 force
    - 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 `except=motorcar`)
    - 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 dependence)
    - 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 (Project-OSRM#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) (Project-OSRM#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
    - Prettier API documentation now generated via `npm run build-api-docs` output `build/docs`

v5.5.0-rc.3

Toggle v5.5.0-rc.3's commit message
Released 5.5.0 RC3

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 force
  - 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 `except=motorcar`)
  - 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 dependence)
  - 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 (Project-OSRM#3114)
- 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
  - Prettier API documentation now generated via `npm run build-api-docs` output `build/docs`

v5.5.0-rc.2

Toggle v5.5.0-rc.2's commit message
- 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 force
    - 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 `except=motorcar`)
    - 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 dependence)
    - 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
  - 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
  - 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
    - Prettier API documentation now generated via `npm run build-api-docs` output `build/docs`

v5.5.0-rc.1

Toggle v5.5.0-rc.1's commit message

Unverified

This commit is not signed, but one or more authors requires that any commit attributed to them is signed.
Bump CMakeLists version.

v5.4.3

Toggle v5.4.3's commit message

Unverified

This tag is not signed, but one or more authors requires that any tag attributed to them is signed.
- Bugfixes

   - Project-OSRM#3254 Fixed a bug that could end up hiding roundabout instructions
   - Project-OSRM#3260 fixed a bug that provided the wrong location in the arrival instruction

v5.4.2

Toggle v5.4.2's commit message
Release OSRM 5.4.2

Changes from 5.4.1
- Bugfixes
  - Project-OSRM#3032 Fixed a bug that could result in emitting `invalid` as an instruction type on sliproads with mode changes
  - Project-OSRM#3085 Fixed an outdated assertion that could throw without a cause for concern
  - Project-OSRM#3037 Fixed omitting the last coordinate for overview=simplified
  - Project-OSRM#3176 Fixed exposing wrong OSM ids in matching
  - Fixes splitting logic in map matching

v5.4.1

Toggle v5.4.1's commit message
Release OSRM 5.4.1

- Bugfixes
  - Project-OSRM#3016: Fixes shared memory updates while queries are running

v5.4.0

Toggle v5.4.0's commit message
Release 5.4.0

  - Chages from 5.4.0-rc.6
    - Bugfixes re-introduce space between two entries in summaries

  - Changes from 5.4.0-rc.5
    - Bugfixes
      - fixed a bug where polyline decoding on a defective polyline could end up in out-of-bound access on a vector
    - Guidance
      - Summaries have been improved to consider references as well

  - Changes from 5.4.0-rc.4
    - Guidance
      - Improved detection of obvious name changes
    - Profiles
      - The default profile for car now excludes HOV-only routes in navigation by default
    - Bugfixes
      - Fixed a bug that could result in endless loops in combination with sliproads

  - Changes from 5.4.0-rc.3
    - Bugfixes
      - Fixed a bug where roundabout intersections could result in breaking assertions when immediately exited

  - Changes from 5.4.0-rc.2
    - Bugfixes
      - BREAKING: Fixed a bug where some roads could be falsly identified as sliproadsi This change requires reprocessing datasets with osrm-extract and osrm-contract
      - BREAKING: Fixed a bug that resulted in false names/ref/destination/pronunciation This change requires reprocessing datasets with osrm-extract and osrm-contract
      - `restrictions` is now used for namespaced restrictions and restriction exceptions (e.g. `restriction:motorcar=` as well as `except=motorcar`)
      - replaced lhs/rhs profiles by using test defined profiles
    - Trip Plugin
      - changed internal behaviour to prefer the smallest lexicographic result over the largest one

  - Changes from 5.3.0
    - Profiles
      - includes library guidance.lua that offers preliminary configuration on guidance.
      - added left_hand_driving flag in global profile properties
      - modified turn penalty function for car profile - better fit to real data
      - return `ref` and `name` as separate fields. Do no use ref or destination as fallback for name value
    - Guidance
      - Handle Access tags for lanes, only considering valid lanes in lane-guidance (think car | car | bike | car)
    - API:
      - `annotations=true` now returns the data source id for each segment as `datasources`
      - Reduced semantic of merge to refer only to merges from a lane onto a motorway-like road
      - new `ref` field in the `RouteStep` object. It contains the reference code or name of a way. Previously merged into the `name` property like `name (ref)` and are now separate fields.
    - Bugfixes
      - Fixed an issue that would result in segfaults for viaroutes with an invalid intermediate segment when u-turns were allowed at the via-location
      - Invalid only_* restrictions could result in loss of connectivity. As a fallback, we assume all turns allowed when the restriction is not valid
      - Fixed a bug that could result in an infinite loop when finding information about an upcoming intersection
      - Fixed a bug that led to not discovering if a road simply looses a considered prefix
      - BREAKING: Fixed a bug that could crash postprocessing of instructions on invalid roundabout taggings. This change requires reprocessing datasets with osrm-extract and osrm-contract
      - Fixed an issue that could emit `invalid` as instruction when ending on a sliproad after a traffic-light
      - Fixed an issue that would detect turning circles as sliproads
      - Fixed a bug where post-processing instructions (e.g. left + left -> uturn) could result in false pronunciations
      - Fixes a bug where a bearing range of zero would cause exhaustive graph traversals
      - Fixes a bug where certain looped geometries could cause an infinite loop during extraction

    - Infrastructure:
      - Adds a feature to limit results in nearest service with a default of 100 in `osrm-routed`