[OSRM-talk] OSRM 4.9.0 released

Patrick Niklaus patrick.niklaus at student.kit.edu
Thu Dec 24 11:42:59 UTC 2015


# Overview

`4.9.0` is a massive release with 198 files being touched, 8501 lines
added, and 6308 deleted.
This release features experimental support for traffic updates based on CH.
It is an experimental feature and will most likely be subject to
change. Some instructions
to get traffic updates running can be found int the wiki
[here](https://github.com/Project-OSRM/osrm-backend/wiki/Traffic).
This release also features support for 64 bit OSM node ids. This
drastically increases the disk space needed for pre-processing. Server
memory usage is not affected. In preparation for the upcoming API
re-write in `5.0` some smaller API breakges were introduced in this
release. Leaflet-Routing-Machien 2.6.1 is compatible with the new API.
As always this node-osrm 4.9.0 can be found on npm as well.

# Changelog

## API changes:
- BREAKING: Changed response code for ok to `200`
- BREAKING: Fix off-by-one in via_indices (was one index too high)
- BREAKING: Removed `osrm/server_path.hpp`
- Add max value for viaroute and trip to osrm-routed. Default: 500 for
viaroute and 100 for trip
- Allow POST request without POST data
- Add response code 208 for no segment found (important for bearing filter)
- New temporary file `.level` created by osrm-prepare (see level caching)
- New temporary file `.edge_segment_lookup` and `.edge_penalties`
created by `osrm-extract` if passing the `--generate-edge-lookup`
options.
- API grammar got more strict to discard invalid requests faster.
Options like `hint`, `u` and `b` now need to follow directly after a
`loc` (or `src` and `dst`). Example:
`&loc=..&u=true&b=0,10&loc=...&u=false&loc=...`. The following is
illegal: `&loc=..&loc=..&loc=...&b=0,10&u=true&u=false`.
- Pre-turn bearing is now available in the `route_instructions` array
as last field
- Remove short option name `-m` from `osrm-routed` as it conflicted
- New option `--segment-speed-file` for `osrm-prepare`. CSV file using
`from_osm_id;to_osm_id;edge_value`.

## Bug fixes:
- Support 64bit OSM node ids
- Fixed u-turn penalty, value from lua profiles was not used
- Fix street name corruption for large datasets
- Properly initialize UUID used in Fingerprint class.  Fixes #1721

## Maintenance:
- Rewrite nearest neighbor search code
- Rewrite via-route search and fix multiple related bugs
- Add test for small component snapping
- Update variant library which fixes GCC 5.1.2 compile errors
- Silence warnings with GCC, LTO does not yet respect the -isystem switch
- Use ccache by default if available and a suitable compiler is used.
- Switch Travis builds over to trusty for Linux
- Fix pkgconfig cmake template

## Features:
- Support general nxm queries to table query (thanks to @fab-girard)
`loc`, `dst`, `src` parameters
- Add edge update step to `osrm-prepare`. Enables fast edge weight updates
- Add level caching `--level-cache` for `osrm-prepare`. This allows to
speed up consecutive runs of `osrm-prepare` **on the same dataset**
(only edge weights updates allowed).
- Small component size is now configurable over parameter for `osrm-routed`
- Support adding bearing filtering. Use `b=BEARING,RANGE`
- Add support for advisory speed limits
- Add duration and distance fields to `match` response
- Human-readable error messages for out of memory
- Include (road) name of matched nodes in addition to coordinate.
- Add `is_startpoint` property to `result` ways in the lua profiles.
Determines if a way can be a start point for a route (e.g. is set to
`false` for ferry ways).

# Thanks

Thanks to all the contributers of this release:

- Arne Kaiser
- Daniel J. Hofmann
- Daniel Patterson
- Fabien Girard
- Johan Uhle
- Jordan Markov
- Kal Conley
- Lauren Budorick
- Moritz Kobitzsch
- Rohan Paranjpe

Cheers,
Patrick



More information about the OSRM-talk mailing list