Tags: europrapor/osrm-backend
Tags
4.9.0 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 Project-OSRM#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).
Feature highlights: - Add `trip` plugin for TSP computation - Implement raster source feature to read data (currently only .asc) from third-party sources, to be used in lua profiles. - Instructions are now returned in match plugin (thanks to Andreas Gruß) - Partial contraction support, new file .core - Update to libosmium 2.3.0 - Remove protobuf dependencies (libosmium ships with an own minimal decoder) - Parse specific restriction:* tags based on profile exceptions - Make an exception for block barriers in bicycle and foot profile. - Make pedestrian roads marked as destination routable with car profile. - Make map matching more resilient against low sample rates - Enable turn penalties on car profile, using values tuned by comparing real-world sample routes with map-matched routes. - Add rising bollard exception to barriers for car profile. Bug fixes: - Fix race condition in osrm-routed - Fix processing for data files with incorrect node references - Fix postgis lua example - gps_precision and matching_beta can be used as a float value - Fix typo in foot profile that removed traffic lights - SCC search is now run on edge-expanded graph - Fix off-by one error in hint decoder and make padding deterministic.
This release mostly brings bug fixes and profile changes. Some highlights: * Fixed filetype checks for input data * Add penalty if there is only one lane for both directions * Fix tag misspellings in profiles + tests: forestry, pebblestone * Server supports POST requests * Don't remove small segments at start/begin if they are vias * `locs` parameter added that accepts via coordinates as polyline * Deduplicate edges in contractor correctly and add better graph validation. * Add running tracks to foot profile * Use 'name (ref)' for way names if both are present * Content Type validation added * Update bicycle profile to ignore crossing nodes * Fixed Project-OSRM#1424 and all related bugs. * Fixed Coverity issues * Refactor ProcessingChain by splitting into sub functions * Refactor ExtractionContainers by splitting into sub functions * Return error message when lua error occurs. * Cleanup the default profiles (formating, style, removed duplicate code) * Follow symlinks to profiles * Use distance based search radius for coordinates (limited to 1100m)
The biggest addition in this release is the map matching plugin. Please note that the library interface changed! The naming convention of the headers now follows the new style guidelines for the rest of OSRM. Some highlights: - Library includes now follow the new style convention - Library interface now uses the internal JSON object - Add map matching plugin - way id, node id and node location available thru Lua bindings - traffic signal penalty ignored on white-listed barriers, cf. Project-OSRM#1365 - fix escaping of double quote in JSON response, fixes Project-OSRM#1410 and also adds a unit test for that case. - Add test for building as shared library - fix incorrect behavior when via point was on same one-way street as destination but should have been reached before, closes Project-OSRM#1424 - fix rounding error/uncertainty on some systems - implement ISO 8601 durations parsing, cf. Project-OSRM#1399 - use CRTP instead of virtual functions in routing plugins - add movable bridge support to the car profile. Implements Project-OSRM#1399 - Allow CORS requests in osrm-routed. - check if stxxl compiles with or without libgomp, fixes Project-OSRM#1361 - speed up nearest neighbor query by pruning, move coordinate calculations away from library interface - Add regression test for FixedpointCoordinate - remove copy of libosmium, to be replaced by a subtree - use static graph for component exploration, closes Project-OSRM#1288 - Move server configuration from method parameter to a struct - Add a commande line option to osrm-routed for max locations supported in distance table query
First of all, we are using the great libosmium[2] for parsing OSM dat… …a files now. It's developed by Jochen Topf and we have been impressed with the speed and reliability of the code. Thus, we retired our own parsing code. Expect a speedup when parsing files! Please note that this is a breaking change if you have been using custom speed profiles with your OSRM installation. If you have any questions or concerns porting your speed profile, please don't hesitate to get in contact. This is the shortened change log: - implement parsing thru libosmium - reimplemented incremental nearest neighbor query - nearest neighbor is chosen from nearest small and big component - updated cucumber tests - refactored SCC traversal code, same interface as BFS components code - move application logic, i.e. shape file generation, from SCC traversal class to calling tool code - enable gcc color output when available - continued stream-lining of source files to remove camel case - fixed a number of unintended implicit un/signed casts - fixed a number of of old-style casts - reformatted code of phantom node c'tor for legibility - add better checks for forbidden routes - made implementation of restriction map independent of graph type - replace insecure std::rand by C++11's random number generation - fix coverity issue 1258907 Division or modulo by float zero - use JSON container to hold all intermediate results: - fix Project-OSRM#1255 assume lift gates are passable
- Merge pull request Project-OSRM#889 from Project-OSRM/experimental/… …cuke_datastore - change of travel_mode is now indicated, ie. ferries, shuttle trains, etc. - update car and foot profiles, add ferry mode - support for maxspeed tags in the form of 'countrycode:zone type' for car profile - support way surface, tracktype, smoothness tags in car profile - ability to get multiple points from /nearest by using num_results argument - use double precision floating point math to fix some rounding issues - fixed a number of bugs in the compressed graph format - use smarter caching in the test suite, speeds up re-runs. - remove compile-time time stamps for less rebuilds - replace boost::variant w/ mapbox::util::variant - tighter C++11 integration - enable partitioning on link-time optimization, good riddance GCC 4.7 - better checking for luabind compilation, fixes some OSX woes - use object libraries in cmake Potentially breaking changes: - removed remaining GCC 4.7 support - the server API has changed to include travel mode - bumped minimum CMake to 2.8.8
PreviousNext