cd892f98e Release v2.20.0 e3de973e9 Disable false positive warning from GCC 938b98970 Optionally allow fractional seconds in timestamps 345d19054 Remove broken Appveyor build 8540bd4b5 Disable readability-convert-member-functions-to-static warning 8bda57bcc Fix some clang-tidy constness warnings 61d415bd8 Avoid C-style casts 4fa920809 Use default member initialization e80a04c34 We do want macros for the version numbers 7b3ebb52a Make string global in test to avoid sanitizer errors b904200aa Github actions: Disable "integer" sanitizer checks d0c0741e4 Github actions: Disable dangling-reference warnings 2fcd1947d Github action: Cleanup build 8acce311b Github action: Use newer OS versions for builds 253b68795 Bugfix: Don't use class template arguments on constructor definition 58b313d3e Enable posix_fadvise usage on FreeBSD d81d4c809 Github actions: Really disable stretch build... a85834cf9 Github actions: Remove build on (unsupported) Debian stretch 94674ed90 Make parsing PBFs a bit less picky f73731a1c Fix comment 5af0a4b48 Update README.md: Remove appveyor and codecov links a44ae7be0 Release v2.19.0 d74ee5178 Update change log af0e728c1 Update copyright date to 2023 3a76dfc4f Mark RapidJSON support as deprecated 866cdbdf1 Remove YCM config 752742ad3 Update included Catch to v2.13.10 c19fd7f16 Use PROJ_DATA in addition to PROJ_LIB 86c983378 Github actions: Cleanup e6376a5aa Github actions: Update actions/upload-artifact to v3 2adf892d7 Github actions: Update config 146cc02f6 Github action: Update config 4e6ab3798 Revert "Remove deprecated functions in RelationsMapIndex" 7781aeb6f Remove deprecated functions in RelationsMapIndex 7314118a3 Remove deprecated BoolVector class f6e6b1873 Remove deprecated NWRIdSet class 1676d386e Remove deprecated AssemblerConfig constructor 098f5f81e Remove comments referring to deprecated functions recently removed 4b3f18a9f Github actions: Disable Fedora 34 build f8f54de13 Make conversion to double explicit 62b8ebe93 Various cleanups based on clang-tidy warnings 95016bf9c Use modern member initialization 3dc22331f Add lots of const's 7b9b68667 CMake config: Also check for newer clang-tidy versions 3ed568f74 Print start of offending string in overlong string exception 5663f7781 Github action: Build on Fedora 36 instead of 34 dcb34b53e Make bzip2 unit tests pass on musl-based systems 73d3594b7 Github action: Fix build on Ubuntu 22.04 a65d90902 Add lz4 library to AppVeyor build a9416a981 Github actions: Build with Ubuntu 22.04 instead of outdated 21.04 4acdcfd40 Fix bug in members database test case 04506b22f Merge pull request #348 from AMDmi3/thread-name-freebsd 4d01c4f09 Implement set_thread_name() on FreeBSD 1fb34f931 Merge pull request #347 from a-balashov/master 6a34529d1 Fix return type. 5cec5e9c7 Fix compilation problem in example 9c50fde42 Release v2.18.0 8ab3ec47a Add a note in the source code about missing changeset id in CRC d9264f597 Remove code that has been deprecated for a while 4ee289652 Update change log 50fe2b633 Formatting a9ed5f93d Modernize some code 3cd09750a Rule of 5 for IdSetSmall 172f01b19 Use noexcept for move constructor/assignement 53ad0fa06 Remove OSMIUM_NORETURN macro 83002751c Use system_error instead of runtime_error where it fits better 35aecff32 Formatting fix 88c97620f Release v2.17.3 49d07bd8c Github actions: Give slow macOS machines more time 5971549fc Update change log 5aa70017c Update included Catch framework to v2.13.8 6683867cf Bugfix: Removed deadlock when shutting down active Reader 9c1cfc06b Update copyright date to 2022 481c77ed6 License file was renamed a couple of years ago 9e709fe3b Release v2.17.2 55f2a9423 Fix various formatting issues 9b94aa798 Fix detection of std::variant availability 97c6c282d Update change log 29b9ca1eb Use std::variant instead of boost::variant if available 5aea3bffb Add note about deprecated code to be removed to change log 67ca42393 Mark osmium::geom::CRS and Projection classes as deprecated d7907274a Remove unused include 322fd9396 Don't install (deprecated) sparsehash on msys2 build ac5a20e64 Github actions: Use lz4 library in CI builds 83af3efe7 Remove various workarounds for Windows compiler 156a4600f Github action: Also build benchmarks on Windows CI builds 38741c61e Bugfix: Possible dereference of invalid iterator in area assembler 0a51d0e69 Declare support of sparsehash based index deprecated c7f136fb9 Remove dependency on boost::filter_iterator a58a869c2 Disable clang-tidy warning 0af04dcf3 Add missing virtual destructors and use rule of 5 437461fa6 Add explicit explicit da202152d Github actions: Add clang-tidy workflow (runs only on demand) 205ad0347 Various small cleanups based on clang-tidy findings b6fed6b48 Avoid bugprone-implicit-widening-of-multiplication-result warning 8cad37cb8 Use `return` or `throw` instead of std::exit where possible b89da1374 Various clang-tidy fixes 555918726 Better variable name 4e16fd340 Use explicit constructor e51709efa Github CI: Also test on Windows 2022 (beta) d8e4acba5 Do increment test together with copy constructor test bbb0e169e Remove dependency on boost::indirect_iterator 5962b26be Github actions: Add Fedora 35 CI build 7180195f4 Github actions: Fix Debian testing gcc build a3a1974c2 Switch from catch version 1 to catch2 as test framework f031f8e26 Fix signed/unsigned comparisons f3c8f86ab Get file size in Reader earlier, before we use fd in other thread 0d910154e Remove unused variables d063e894b Bugfix: Do not read from queue that might be empty. 5c1d8d619 Modernize clang-tidy config 8e09b1c99 Pass by value and move std::string 56506a35f Github Actions CI: Remove build with thread sanitizer 68dbf631d Set timeouts on Github action workflows 346a92232 Remove superfluous buffer.commit() d9167bfb9 Rework Github actions b9582997d Fix stringop-overflow warning on GCC 5977dde02 Bugfix: Checking of ID order 44c05bf6f Add offending IDs to out-of-order exception messages 421814b3f Add more object comparison tests 090e70064 Workaround for GCC in C++17 mode 0901c5aee Set CMake minimum version to 2.8.12 ddce269e7 Remove unused includes/libraries from test 10520b3a9 Fix threading problem ae90568c9 Make integer type conversion explicit 6ebfbb2a7 Revert "Make integer type conversion explicit" ea58b8100 Replace std::forward with std::move for clarity 309fac854 Cast unicode literals in C++20 351209de9 Put two enum constants we are using together into same enum e933414c1 Use std::invoke_result_t instead of std::result_of from C++17 134fcfb77 Use explicit casts from enum constants to double 568d7dee7 Make integer type conversion explicit a11e77db1 Add missing initialization a2c4f5031 Make some member functions static f75e01e9f Make member functions static in examples 489e19dd1 Small cleanups in Reader b6d6c5b90 Fix include order aa684d06c Avoid warnign in CMake script for finding gem 78e28d1f5 Add Github sponsoring button d124e2ea7 Release v2.17.1 30f5c4a95 Link to help.osm.org as further support option f277d1379 Add github issue template 315709f08 Update change log 068c7405b Store offset in Reader directly from Decompressor 586d9fbb6 Make tracking of file size the responsibility of the Reader 5dcc2fe89 Mark page cache blocks as DONT_NEED later, 0cf064c8c Fix file_size()/offset() functions for PBF files 15d594fe6 Better implementation of integer parser for OPL parser 85633a023 Only set OSMIUM_EXPORT when OSMIUM_DEFINE_EXPORT is set e2de86aff Add missing initializer in test 17f251c91 Add support for fadvise DONT_NEED to the PBF reader 313a3e598 Check env var OSMIUM_CLEAN_PAGE_CACHE_AFTER_READ 8a000cf89 Add option to use or not use fadvise in decompressors 7f9c48654 Read PBF files without an extra thread cd7d5fa45 Add osmium_tags_filter example showing use of tags filter b4901a312 Use newest version of gdal.hpp 02d26a97e Mock out OSMIUM_EXPORT macro for header checks 5d50405a8 Explicitly export exception types. 4bdb688c0 Remove Ubuntu 16 CI runs f94e1218d Use #ifdef instead of #if to check if a macro is set 19d4e5f46 Allow integers with up to 18 digits in OPL parser 7316c657e Rename confusing variable name 8f5a85235 Remove unnecessary int -> double -> int conversion in PBF output e970573a4 Add Writer::set_header() function to set header after constructing 9d5b890f7 Do not try to compile osmium/geom/projection.hpp without proj lib c95404d78 Make compile/test with proj lib optional 5e8e6630d Github actions: Remove broken coverage workflow 111529b3c Do fewer string allocations in PBF reader daae73d58 Check OSMIUM_USE_POOL_THREADS_FOR_PBF_PARSING env var only once b263ba5e8 Release v2.17.0 d484726ed Update the notes for developers e0045079a Update change log 7e0a0867f Cleanup and some new asserts for o5m parser code 66c5efe2f Bugfix: Another OPL parser bug a4a57b1d6 Bugfix: Access beyond end of buffer in OPL parser 4dd1f9a11 Bugfix: Avoid integer overflow in o5m parser c236ceb5d Update to newest osm-testdata submodule f17bd7af9 Bugfix: OPL parser stumbled on "%%" in text f8d031311 Add value accessor function to DeltaDecode class 3d88936fb Fix msys2 build 56b023608 Add convenient access functions to nwr_array aa88c1c3c Add version of osmium::memory::Buffer::purge_removed without callback dd2788554 Update change log 5702748fc Disable clang-tidy check that has false positives b36d6c998 Code cleanup 44c6286a8 Avoid type confusion on Windows d5aa671c0 Github actions: Install missing compilers d6ea0da09 Fix failing test missing initializer 58839058f Add flag osmium::io::buffers_type for Reader ef6f0a614 Remove code duplication in OSM file input parsing ae936b158 Add recent changes to changelog 61da2e4e2 Add Github action GCC 10 Dev build fa152fb8b Disable spurious warning generated by GCC >=8 bffdb24a5 Revert "Disable spurious warning generated by older gcc versions" cb35dd02a Rename variables to avoid shadowing other function/variable names 2a929cc19 Tinker with cppcheck warning suppression c81e76595 Reference parameter can be const b6fc08347 Reduce scope of "visible" variable b6e211116 Use shared_ptr instead of unique_ptr 8a78ac477 Disable clang checks about global variables in some tests 06a1efc9b Disable spurious warning generated by older gcc versions 39a518a93 Remove github actions Windows workflow 445fc4ecd Add "ids" output format 69ab990f3 Better bucket_count tracking without global 8a9679c3e Move more of the pbf serialization code into pool threads 5ced435b9 Cleaner implementation of PrimitiveBlock that doesn't need reuse 770cd8a89 We don't need the type() function 7cdf0765e We know how many nodes there usually are in a DenseNode block f81469d63 Make a copy of the output options in the PrimitiveBlock 1cfe4818f Don't use references as class members c488a14d1 Use DenseNodes only when needed in PrimitiveBlock d38d6635c Move SerializeBlob class down in the file 953fdd57f Remove superfluous std::move() 9bb70f968 Optimization: Wrap check for future in atomic bool check e9ab79c39 Use memset/memcpy instead of std::fill_n and std::copy d24ca6b77 Different varint decoding for faster PBF decoding 1b24ed181 Adapt cppcheck suppression for newer cppcheck versions bc915d487 Bugfix: Can't use std::forward multiple times on the same object 4679374a9 Remove superfluous std::forwards b8fcdfbf8 std::forward not needed 4e406564a Can't use std::forward twice on a parameter 0d5d92ab8 Can't use std::forward twice on a parameter f75faf2e8 Avoid strange segfault on Windows b81deee17 Remove Windows build on Github actions 9543c8898 Correct formatting for cppcheck supression f3bdabde7 Remove unnecessary test 77a5d0b15 Sprinkle some const's around the code 644efeaa7 Use assert instead of exception in "can not happen" situation d9b1c12c8 Use const buffer (because we can) f79e46d86 Wrap unmap() in try/catch on Windows also b8621fb78 lat/lon_without_check() can be noexcept 7302bcc6d Rename some local variables to not shadow member functions aaa983625 Fix functions accessing borders of box (noexcept) 36c4cc2d8 Another call to posix_fadvice() that should only happen on Linux 016305de6 Check we don't have a negative offset before calling fadvise c3e877e0e Only call posix_fadvise() on Linux 94a5c9063 Use fadvise to tell kernel about our reading patterns 6a4f553a6 Add functions to access storage from node_locations_for_ways handler 3aef811e2 Add polygon output to WKB factory 04720be8c Add convenience functions to access box boundaries 1705adb8a Remove undefined behaviour 072612ab9 Ignore metadata setting on reader for history/change files d7a880873 Update docs related to read_meta setting 336001aba Merge pull request #321 from fxcoudert/patch-1 c587e53e8 Update catch.hpp b293e96db Fix: Test failure because of ordering by address, not string 46c063928 Release v2.16.0 a91eac694 User cmake helper for finding LZ4 6009389e3 Disable data test because it doesn't work (No Spatialite in OGR) 4160d2378 Update CI workflow 6318f51fa Remove old build.bat 78ac3abda Disable some clang-tidy warnings efcebbfe5 Use simple return instead of std::exit b5cec1a9b Avoid else after return 2fb593a56 CMake config: Update list of clang-tidy versions we look for c2da87d08 Update change log 54894fdbb Make number of bytes written to an OSM file accessible from Writer 0e47ca0d2 Use std::stable_sort instead of std::sort in area assembler 3d5c90750 Add function to show supported pbf compression types d22b419c9 Do not use pkg-config to find LZ4 library 366c3f5ac Make pbf_compression into an enum class 87e492aad Replace unordered_set by vector 9ca43812a Fix broken comment ce88a2a08 Use proper name "macOS" 6cec53471 Update copyright date 2c9ab8627 Only try to compile lz4 code if it is enabled 9be3779b1 Make zlib_default_compression_level() function constexpr 4d629c91b Error out if zstd compressed data is detected in a PBF file e3a8b2af4 Add support for LZ4 compression in PBF files 78f70e50c Prepare for more (optional) PBF compression types 5cd5bd6f6 Add support for setting zlib compression level when writing PBF files 23d662260 Add optional compression_level parameter to zlib_compress() f077b8351 Add lz4_data and zstd_data fields in protobuf Blob message 35939b2cc Make some file helper functions noexcept b74047957 Update submodule cce503a44 Add some casts in CRC code to avoid undefined behaviour 5e72f050f Make timer class member functions non-static again 729b0317b Replace two timers by a single one, we only ever use one or the other 98268aa95 Switch from Travis CI to github actions 6c4ee8b6b Fix appveyor build 91350d7cd Iterate over const ref to avoid copy 0e14ef635 Fix cast so we don't get UB 26144743b Array iterator isn't necessarily a pointer 1109d7347 Range-for loop iterates over values not references in this case ce09cb7b8 Also check for clang-tidy versions 11 and 12 fd106ff08 Disable some clang-tidy checks 2bee7dd34 Avoid const return values so automatic move will work fe3f00dad Make member functions const if possible a82bc94f6 Use member initializer where possible c757a1d5f Always initialize variables even if not strictly necessary efd7e0799 Make some member functions static 89134cafb Use qualified auto where it makes sense a1cbd7cd2 Merge pull request #314 from tomhughes/dependency ec65b9f44 Fix typo in test dependency c965256e3 Derive exception class from std::exception 4352b68ca Mark overridden destructors as override 3f64f0189 Add some documentation around the use of the thread pool be04b4d58 Use stable sort when sorting ObjectPointerCollection 1bd2059f2 Release v2.15.6 378305f4c Avoid wrong integer promotion 9fc63bc5e Update change log ae649700c Quick fix: Restrict recursion depth to 20 when building areas e9368b642 Add getter function for object_id to problem reporter 9599aa447 Mark classes as final instead of individual member functions e076b6d27 Add IdSetSmall::merge_sorted function fd7b1e9c9 Little optimization for IdSetSmall 69113a832 Release v2.15.5 1af498ad6 Update change log 312a537c9 Update travis config according to the newest fashion a5f61f66f Revert "Remove YCM config" 4db1ab3c0 Mark projection classes using PROJ library as deprecated dae2898db Revert "Also support API of modern PROJ library (version 6 and above)" 2c9ea591a Revert struct initialization because old GCCs don't like it c2d4734d7 Various small cleanups f960e9c5f Update change log d0cd61337 Make OPL parser more strict: Attributes can only be specified once d5a76e635 Also support API of modern PROJ library (version 6 and above) cd580daae Remove YCM config 531828135 Merge pull request #304 from zhaitianduo/master 3fa9a2f47 Stick to west const convention 42fc3238f fix parsing lat bug from pbf densenode a2df9f058 Make available_space() always return 0 on Windows 00471e02c Merge pull request #303 from CloudNiner/patch-1 fb305564a Fix location attr variable name typo e532f5938 Add additional constructor for member_type(_string) taking char type 872338442 Add iterator to nwr_array 2709257c3 Check how much space is available in file system before resizing file c8920d819 Disable our own deprecation warning when checking our headers 392f31c87 Update copyright date 51d15f8bd Document that location and box parameters are WGS84 01bf91a45 Bugfix: Do not close stdout after writing OSM file to it 31cc17dc4 TagMatcher now remembers whether it has a value matcher. 0bb6f48b2 Simpler emptyness test. a2baf014e Split up large test cases. e571f87fb New builder::attr::_t() function to set tags from comma-separated string a9793a429 Doc fix: Not a question. 2010af4d1 Remove unused header include f56d7a2ef cleanup code 07589f471 Allow single C string or std::string as argument for _tag. cf5d3b2b0 Make distance function noexcept and use std versions of math funcs 3c605280f Make two almost identical overloads of haversine for pyosmium 7d85f5538 Make haversine function take a NodeRefList instead of WayNodeList a43ffb61c Release v2.15.4 a77b99dbd Various small code improvements in area assembly code. 13ba60cb7 Reduce memory consumption in area builder 2e1d7f05b Keep track of recursion depth in area builder. e8a7d81eb Make debug output for complex multipolygons slightly more verbose. 23c7341de Revert "Travis: Also try building on ARM." 49f8c54c7 Travis: Also try building on ARM. e0bc0e55e Travis: Remove failing old OSX build. a83406e45 Add osmium::Options::empty() for consistency with STL containers. 8fb753a6f Release v2.15.3 5eea80c50 New header option "sorting" when reading and writing PBFs. 46a6e4399 Bugfix: Do not propagate C++ exception through C code. c47366d3f Release v2.15.2 1c5762f65 Change member variable init to make GCC 4.8/4.9 happy. 2503f94c9 Initialize array. e2c10a1b3 Use std::array for nwr_array class. 8c95a6605 Workaround for old compiler. 91d63d1a5 Use larger int so we don't get narrowing conversion warnings. 96d963155 Make clang-tidy happy. 180ad2e0c Bugfix: Call parent constructor in IdSetDense copy constructor. d0554c9d4 Add swap, copy constructor and assignment operator to IdSetDense. b30715ed8 Retire use of OSMIUM_NORETURN macro. Use [[noreturn]] instead. 12e5f69ad Make wrapper class constructor explicit. aeb514563 Update included catch.hpp to 1.12.2. 07322bd94 Update change log. 1bd037197 The apply function can now also take lambdas. 618e4af0a Fix Appveyor badge. 162694bda Merge pull request #285 from tusharpm/appveyor_fix_msys 820798c6a Use workaround for spatialite - readline c3e05d977 Travis: Better homebrew config and also run on OSX 11. 6df0bbea8 Fold one-liner function only used once into code at call site. e7f1f0ccc Make member functions of Timer class non-static again. 0204aa980 Remove assert, because check is not needed. e3e60312a Revert "Use ftruncate64 instead of ftruncate." 9fa018323 Enable use of the old proj API in proj version 6. 9d046b4c8 Use ftruncate64 instead of ftruncate. 1a7654b05 Make some member function static. 98ce21919 Disable more clang-tidy warnings. ba8502702 CMake config: Also look for clang-tidy-10. 90391c15a Use explicit cast and document why it is okay. ebc5164f7 Disable narrowing conversion warning here. 1b4bbcb37 Make it clear that we are intending a conversion to double here. cbe2e2f3e Build some of travis builds on dist bionic. e7e4031ff Fix integer conversion algorithm. c664fc4be Disable another clang-tidy warning. df23ce407 Disable overstrict clang-tidy warning. 39e69d7b7 Use const ref instead of value parameters. 42e480430 Disable clang-tidy avoid-c-arrays checks. 032ee4c31 Use std::array instead of C style arrays. 60b936229 Use uppercase letters for integer literal suffixes. f0e7d1281 Disable clang-tidy checks. accb19c6e Disable clang-tidy check in test. d0ebf2668 Disable clang-tidy warning cppcoreguidelines-avoid-magic-numbers. bbbb246ef Replace c-style arrays by std::array in some places. 631e39c12 Use uppercase letters for integer literal suffixes. c59fac3d7 Give name to unused function parameters to make clang-tidy happy. 91151ad52 Remove const from return types because it doesn't do anything. 49dea1c31 Do not use multiple declarations on a single line (readability). 90115a5bd Do not return pointer to local string. 546681234 Also look for newer clang-tidy versions in CMake config. 5858c491a Better error messages when parsing a timestamp fails. 5c06fbb60 Ignore <bbox> or <bounds> subelement of <way> or <relation>. 90f26c772 Document that valid values must be used for projections. 65a75b7d2 Make some compilers happy. 7d82a43aa Do not build areas with more than 100 locations where rings touch. f3003e774 Fix wrong comment. 35f184f08 Release v2.15.1 3553d03bd Update copyright date to 2019. ffa35e0c2 Appveyor config: Move the slow MSYS2 compilation to the back. d6024a9d6 Update change log. 10ecb1335 Fix bugprone-forwarding-reference-overload clang-tidy warnings. b66bc888d Disable bugprone-macro-parentheses clang-tidy check. 40bf6614e Switch appveyor badge c19e26906 Disable a warning on new GCC compilers. 28c753846 Fix signed bitwise operation. 1304ad246 Bugfix: Function is not noexcept. ce5867ea1 Put try/catch around most of main() in benchmark and test programs. bfe1c5384 Fix exception specifications. 6c1ade020 Put try/catch around most of main() in example programs. 345359a2a Bugfix: Integer truncation on 32 bit systems. 7b66ff706 Fix or disable some clang-tidy warnings. 538e0f52f Bugfix: correctly throw exception. c582ebdcf CMake config: also find clang-tidy-7. 0ec6cda55 Add some assertions testing alignment. e40fc3ff0 Cheat compiler so we don't get a warning. 882f01e64 Compile with NDEBUG in RelWithDebInfo mode. 9600bcdaf Merge pull request #275 from Nakaner/test_dump_as_list 0e9344f9b replace std::bind by lambdas, replace hardcoded type 8e8a4dbd8 test Map::dump_as_list a70e4accb Merge pull request #274 from Nakaner/index-test-cleanup aa2555ef5 fix typo b48567a17 test SparseMmapArray as well 825859f9d Release v2.15.0 bde2d0024 Give Buffer a better move constructor and move assignment. 0bd61ba95 Some cleanup. a46ea362b Fixed some clang-tidy warnings. 5c9d3c2de Add function to mark tags on OSM objects as removed. da5f083c7 Make chunk_bits in IdSetDense configurable. e5600bbc6 Make the result type of TagsFilter configurable. b107e964b Some code cleanup. 99ea830e0 Use explicit type instead of auto. baff26c29 More efficient use of Buffers in XML/OPL/O5M parsers. 6e4fc2ed3 Various formatting fixes and small cleanups. dc5d08d54 Consolidate queue config code. 2a336d445 Update change log. 968f88152 Stackless implementation of Reader. 7b14860ff Formatting. 1dd2a9f1f Tweak buffer size for PBF decoder. d11ab7db2 Make grow_internal a private method. a8737494c Fix default initialization of Buffer. f6b98df70 Rewrite initializer of unique_ptr. 1efcc32e8 Remove redundant get() call. bef66b861 Experimental code using nested buffers to reduce memory consumption. 2302da299 Clean up error handling code of bzip compression. 67786d98c Clean up error handling code of gzip compression. dd507e322 Move coverage settings before configuration type settings. 07162475f Fix windows build. e1912a8c2 Also implement compression tests for writer side. 16d7800a3 Remove two const_casts. a5e3bd8af Cleanup of compression code and more tests. f42e68745 Fix typo. a1f88fe44 Update travis config to xenial. 5bb5db6a3 Disable clang-tidy warning. 4af366a30 Move appveyor config to new Visual Studio version. 75fc34c0b Revert use of some enums (because of problems with MSVC). 86e9d4393 Use enums for some more constants. 392347512 Force underlying type for some enums. f4ecfc9fe Disable some clang-tidy warnings. 09d785414 Reduce the number of builds on travis. 2056202de Merge pull request #273 from Nakaner/test-missing-rel-member ba511d204 Use enums for integer constants. 59ebb9120 Use const where possible. 5f9ac226c Fix formatting. f5e996670 Use enums for integer constants. 4280437be Remove unused enum names. 76bbf25b2 Test that RelationsManagerBase::get_member_object returns nullptr 091a75f5a Hardcode %lld format instead of using <cinttypes> PRI macro. d6abc4dd7 Travis: Also build with gcc 7. fdf45be5d Update travis conf with newer OSX builds. e4b3d8f31 CMake config: Fatal error with better message if libosmium isn't found. 0632d6007 Formatting/Cleanup. b190b95e5 Set the xml_josm_upload header option when reading XML files. 4a3cbe0f1 Disable docker builds on travis. They are being phased out by travis. a5cb873bc Sort includes. 0e4c57a09 Merge pull request #271 from DennisOSRM/patch-2 13dfd56e1 Minor: Wrong order of qualifiers 1bb69ec62 Code cleanup. 54ae75658 Merge pull request #269 from Nakaner/dump_sparse_as_array bb1a4e3e8 make const what can be const d44c79a5e remove duplicated initialization with empty values c2ef6a67e also test SparseMemArray and don't test SparseMmapArray on OS X 31f10bb2f add comments and check all entries in the index c30845bcf code style issues 5ff69d536 use std::fill_n 78939b47a remove unnecessary variable 93e747244 style fixes a76385a2e simplify test 364830df3 use a simpler loop 393be1270 fix code style issues, use std::unique_ptr instead of bare pointers 309e890bf write empty values during each iteration 0aa4c914e Update to newest gdalcpp. 6fea0e82a tidy up unit test d0fce0ac3 don't confuse the number of elements and the size of the array 98923b8bb MinGW appveyor build is broken again. Try this workaround again. d9c7e25e0 Merge pull request #266 from Nakaner/dump_and_load_index_test ccbcea885 use better name for variable d91f9c8a1 Make sure assert() is not defined in test. f8dc3aad4 implement SparseMmapArray::dump_as_array 02b2ebde1 Add DenseMemArray and run DenseMmapArray only on Linux 8ba350a9b use the file index, not the mmaped index 15f215095 add unit test checking dumping and loading of dense indexes 2d5244a24 Remove workaround. 058cd3a36 Release v2.14.2 ff16782fb Rewrite code to be byte-order independent. c7e76743a Add workaround for gdal problem on MinGW appveyor build. 75d1b48b1 Remove test that doesn't work reliably on all architectures. 269066889 Release v2.14.1 f21bf5738 Write assert in a way it also works on 32 bit machines. 748917839 Refactored some SECTIONs from test cases into TEST_CASEs. 3af83c68a Fix a WKB test which was too sensitive to tiny arithmetic errors. a198b06ba Update change log. 3dfc97fc2 Split up large test cases. 4cae84b1d Add missing includes. dd2a0caf8 Use auto after static_cast to avoid duplication of type. 6fdda54ae Use our internal functions for writing out locations in box output. 060b0ec59 Use unsigned in bit operation. bd8b76eee Remove utfcpp library from libosmium. 467e1a1f1 Add UTF8 to Unicode codepoint conversion. 68c981313 Use our own function for unicode codepoint to tf8 conversion. 2a35ad727 Use protozero::byteswap_inplace instead of htonl/ntohl. 452f56e87 Add Timestamp::to_iso_all() function which also outputs the 0 value. 5f6638f88 Ask for the newest Protozero version. b9886c58b Do a static_cast to avoid compiler warnings. 954b9e5a4 Move test case SECTIONs into their own TEST_CASEs. be99d53ef Add some asserts, docs, and noexcepts. 6ce3bcb10 Replace some SECTIONs by TEST_CASEs in test code. 05841f16f Disable the last clang-tidy warning we are seeing. e16b4ad1e Disable warning about struct initialization. d7e033672 Correct way to disable clang-diagnostic warning in clang-tidy. f60c8fa0a Proper initialization. 6aa3929e1 Resolve some clang-tidy reports. 5bb84716d Mark static_cast_with_assert as deprecated. e51b8e3af Remove remaining use of static_cast_with_assert. d19d97c46 Refactor StringTable to minimize casts needed. cbf0c6e1a Fix naming of member functions that are not found by doxygen. cd3a18a53 Add support for using the CRC32 implementation from the zlib library. 874a79133 Document use of mutable in DiffIterator class. 07985a68e Fix compilation error when fileno() is a macro. eee3d0af6 Use https links where possible. 6465f9ff2 Use https URL for osmcode.org. 60b3bcc16 Make two functions noexcept. ff160aa30 Add clear_user() function to OSMObject and Changeset. 63a6cf4b4 Use {} for constructors. 47b66ed46 Merge pull request #255 from DennisOSRM/patch-1 3e015b4c7 Make sure -stdlib=libc++ is only set on Mac when compiling with Clang 7674775c1 Document MultipolygonCollector class as deprecated. e114fefb9 Travis: build with clang 6.0, remove clang 4.0 8be488572 CMake config: Also look for clang-tidy version 7. 2e7eb285e Fix namespace closing comment. git-subtree-dir: third_party/libosmium git-subtree-split: cd892f98e8e355f5d0a4b717c153c7de0d15bb0d
80 KiB
Unreleased
- Changes from 5.27.1
- Features
- REMOVED: Remove all core-CH left-overs #6920
- ADDED: Add support for a keepalive_timeout flag. #6674
- ADDED: Add support for a default_radius flag. #6575
- ADDED: Add support for disabling feature datasets. #6666
- ADDED: Add support for opposite approach request parameter. #6842
- ADDED: Add support for accessing edge flags in
process_segment
#6658
- Build:
- CHANGED: Upgrade clang-format to version 15. #6919
- CHANGED: Use Debian Bookworm as base Docker image #6904
- CHANGED: Upgrade CI actions to latest versions #6893
- CHANGED: Remove outdated warnings #6894 #6894
- ADDED: Add CI job which builds OSRM with gcc 12. #6455
- CHANGED: Upgrade to clang-tidy 15. #6439
- CHANGED: Update actions/cache to v3. #6420
- REMOVED: Drop support of Node 12 & 14. #6431
- ADDED: Add 'load directly' mode to default Cucumber test suite. #6663
- CHANGED: Fix compilation for Boost 1.85.0 #6856
- CHANGED: Drop support for Node 16 #6855
- REMOVED: Remove unused AppVeyor files #6860
- CHANGED: Upgrade clang-format to version 15 #6859
- NodeJS:
- CHANGED: Use node-api instead of NAN. #6452
- Misc:
- CHANGED: Use thread_local instead of boost::thread_specific_ptr. #6991
- CHANGED: Bump flatbuffers to v24.3.25 version. #6988
- CHANGED: Add .reserve(...) to assembleGeometry function. #6983
- CHANGED: Get rid of boost::optional leftovers. #6977
- CHANGED: Use Link Time Optimisation whenever possible. #6967
- CHANGED: Use struct instead of tuple to define UnpackedPath. #6974
- CHANGED: Micro performance optimisation in map matching. #6976
- CHANGED: Re-use priority queue in StaticRTree. #6952
- CHANGED: Optimise encodePolyline function. #6940
- CHANGED: Avoid reallocations in base64 encoding. #6951
- CHANGED: Get rid of unused Boost dependencies. #6960
- CHANGED: Apply micro-optimisation for Table & Trip APIs. #6949
- CHANGED: Apply micro-optimisation for Route API. #6948
- CHANGED: Apply micro-optimisation for Match API. #6945
- CHANGED: Apply micro-optimisation for Nearest API. #6944
- CHANGED: Avoid copy of intersection in totalTurnAngle. #6938
- CHANGED: Use std::unordered_map::emplace instead of operator[] when producing JSONs. #6936
- CHANGED: Avoid copy of vectors in MakeRoute function. #6939
- FIXED: Fix bugprone-unused-return-value clang-tidy warning. #6934
- FIXED: Fix performance-noexcept-move-constructor clang-tidy warning. #6931
- FIXED: Fix performance-noexcept-swap clang-tidy warning. #6931
- CHANGED: Use custom struct instead of std::pair in QueryHeap. #6921
- CHANGED: Use std::string_view::starts_with instead of boost::starts_with. #6918
- CHANGED: Get rid of boost::math::constants::* and M_PI in favor of std::numbers. #6916
- CHANGED: Make constants in PackedVector constexpr. #6917
- CHANGED: Use std::variant instead of mapbox::util::variant. #6903
- CHANGED: Bump rapidjson to version f9d53419e912910fd8fa57d5705fa41425428c35 #6906
- CHANGED: Bump mapbox/variant to version 1.2.0 #6898
- CHANGED: Avoid copy of std::function-based callback in path unpacking #6895
- CHANGED: Replace boost::hash by std::hash #6892
- CHANGED: Partial fix migration from boost::optional to std::optional #6551
- CHANGED: Replace boost::filesystem with std::filesystem #6432
- CHANGED: Update Conan Boost version to 1.85.0. #6868
- FIXED: Fix an error in a RouteParameters AnnotationsType operator overload. #6646
- ADDED: Add support for "unlimited" to be passed as a value for the default-radius and max-matching-radius flags. #6599
- CHANGED: Allow -1.0 as unlimited for default_radius value. #6599
- CHANGED: keep libosrm* in the docker image for downstream linking #6602
- CHANGED: Move vector in CSVFilesParser instead copying it. #6470
- REMOVED: Get rid of unused functions in util/json_util.hpp. #6446
- FIXED: Apply workaround for Conan installation issue on CI. #6442
- FIXED: Fix
npm audit
warnings in NPM package. #6437 - FIXED: Handle snapping parameter for all plugins in NodeJs bindings, but not for Route only. #6417
- FIXED: Fix annotations=true handling in NodeJS bindings & libosrm. #6415
- FIXED: Fix bindings compilation issue on the latest Node. Update NAN to 2.17.0. #6416
- CHANGED: Make edge metrics strongly typed #6420
- FIXED: Typo in file name src/util/timed_historgram.cpp -> src/util/timed_histogram.cpp #6428
- CHANGED: Replace boost::string_ref with std::string_view #6433
- ADDED: Print tracebacks for Lua runtime errors #6564
- FIXED: Added a variable to preprocessor guard in file osrm-backend/include/util/range_table.hpp to solve build error. #6596
- FIXED: Ensure required file check in osrm-routed is correctly enforced. #6655
- FIXED: Correct HTTP docs to reflect summary output dependency on steps parameter. #6655
- ADDED: Extract prerelease/build information from package semver #6839
- Profiles:
- FIXED: Bicycle and foot profiles now don't route on proposed ways #6615
- Routing:
- FIXED: Fix adding traffic signal penalties during compression #6419
- FIXED: Correctly handle compressed traffic signals. #6724
- FIXED: Fix bug when searching for maneuver overrides #6739
- FIXED: Remove force-loop checks for routes with u-turns #6858
- FIXED: Correctly check runtime search conditions for forcing routing steps #6866
- Map Matching:
- Debug tiles:
- FIXED: Ensure speed layer features have unique ids. #6726
- Features
5.27.1
- Changes from 5.27.0
5.27.0
- Changes from 5.26.0
- API:
- NodeJS:
- FIXED: Support
skip_waypoints
in Node bindings #6060
- FIXED: Support
- Misc:
- ADDED: conanbuildinfo.json for easy reading of dependencies #6388
- CHANGED: Improve performance of JSON rendering. Fix undefined behaviour in JSON numbers formatting. #6380
- ADDED: Add timestamps for logs. #6375
- CHANGED: Improve performance of map matching via getPathDistance optimization. #6378
- CHANGED: Optimize RestrictionParser performance. #6344
- ADDED: Support floats for speed value in traffic updates CSV. #6327
- CHANGED: Use Lua 5.4 in Docker image. #6346
- CHANGED: Remove redundant nullptr check. #6326
- CHANGED: missing files list is included in exception message. #5360
- CHANGED: Do not use deprecated Callback::Call overload in Node bindings. #6318
- FIXED: Fix distance calculation consistency. #6315
- FIXED: Fix performance issue after migration to sol2 3.3.0. #6304
- CHANGED: Pass osm_node_ids by reference in osrm::updater::Updater class. #6298
- FIXED: Fix bug with reading Set values from Lua scripts. #6285
- FIXED: Bug in bicycle profile that caused exceptions if there is a highway=bicycle in the data. #6296
- FIXED: Internal refactoring of identifier types used in data facade #6044
- CHANGED: Update docs to reflect recent build and dependency changes #6383
- Build:
- REMOVED: Get rid of Mason. #6387
- CHANGED: Use clang-format from CI base image. #6391
- ADDED: Build Node bindings on Windows. #6334
- ADDED: Configure cross-compilation for Apple Silicon. #6360
- CHANGED: Use apt-get to install Clang on CI. #6345
- CHANGED: Fix TBB in case of Conan + NodeJS build. #6333
- CHANGED: Migrate to modern TBB version. #6300
- CHANGED: Enable performance-move-const-arg clang-tidy check. #6319
- CHANGED: Use the latest node on CI. #6317
- CHANGED: Migrate Windows CI to GitHub Actions. #6312
- ADDED: Add smoke test for Docker image. #6313
- CHANGED: Update libosmium to version 2.18.0. #6303
- CHANGED: Remove EXACT from find_package if using Conan. #6299
- CHANGED: Configure Undefined Behaviour Sanitizer. #6290
- CHANGED: Use Conan instead of Mason to install code dependencies. #6284
- CHANGED: Migrate to C++17. Update sol2 to 3.3.0. #6279
- CHANGED: Update macOS CI image to macos-11. #6286
- CHANGED: Enable even more clang-tidy checks. #6273
- CHANGED: Configure CMake to not build flatbuffers tests and samples. #6274
- CHANGED: Enable more clang-tidy checks. #6270
- CHANGED: Configure clang-tidy job on CI. #6261
- CHANGED: Use Github Actions for building container images #6138
- CHANGED: Upgrade Boost dependency to 1.70 #6113
- CHANGED: Upgrade Ubuntu CI builds to 20.04 #6119
- CHANGED: Make building osrm-routed optional #6144
- FIXED: Run all unit tests in CI #5248
- FIXED: Fix installation of Mason CMake and 32 bit CI build #6170
- FIXED: Fixed Node docs generation check in CI. #6058
- CHANGED: Docker build, enabled arm64 build layer #6172
- CHANGED: Docker build, enabled apt-get update/install caching in separate layer for build phase #6175
- FIXED: Bump CI complete meta job to ubuntu-20.04 #6323
- CHANGED: Node packages are now scoped by @project-osrm #6386
- Routing:
- CHANGED: Lazily generate optional route path data #6045
- FIXED: Completed support for no_entry and no_exit turn restrictions. #5988
- ADDED: Add support for non-round-trips with a single fixed endpoint. #6050
- FIXED: Improvements to maneuver override processing #6125
- ADDED: Support snapping to multiple ways at an input location. #5953
- FIXED: Fix snapping target locations to ways used in turn restrictions. #6339
- ADDED: Support OSM traffic signal directions. #6153
- FIXED: Ensure u-turn exists in intersection view. #6376
- FIXED: Gracefully handle no-turn intersections in guidance processing. #6382
- Profile:
- CHANGED: Bicycle surface speeds #6212
- Tools:
- CHANGED: Do not generate intermediate .osrm file in osrm-extract. #6354
5.26.0
- Changes from 5.25.0
- API:
- Build:
- Routing:
5.25.0
- Changes from 5.24.0
5.24.0
- Changes from 5.23.0
- Features
- Routing:
- Misc:
- CHANGED: Cleanup NodeJS dependencies #5945
- CHANGED: Unify
.osrm.turn_penalites_index
dump processing same with.osrm.turn_weight_penalties
and.osrm.turn_duration_penalties
#5868 - FIXED: Properly validate source/destination validation in NodeJS table service #5595
- FIXED: turn.roads_on_the_left not containing incoming roads and turn.roads_on_the_right not containing outgoing roads on two-way roads #5128
- Profile:
- ADDED: Profile debug script which fetches a way from OSM then outputs the result of the profile. #5908
- Infrastructure
- CHANGED: Bundled protozero updated to v1.7.0. #5858
- Windows:
- API:
5.23.0
- Changes from 5.22.0
- Build:
- FIXED: pessimistic calls to std::move #5560
- Features:
- ADDED: new API parameter -
snapping=any|default
to allow snapping to previously unsnappable edges #5361 - ADDED: keepalive support to the osrm-routed HTTP server #5518
- ADDED: flatbuffers output format support #5513
- ADDED: Global 'skip_waypoints' option #5556
- FIXED: Install the libosrm_guidance library correctly #5604
- FIXED: Http Handler can now deal witch optional whitespace between header-key and -value #5606
- ADDED: new API parameter -
- Routing:
- CHANGED: allow routing past
barrier=arch
#5352 - CHANGED: default car weight was reduced to 2000 kg. #5371
- CHANGED: default car height was reduced to 2 meters. #5389
- FIXED: treat
bicycle=use_sidepath
as no access on the tagged way. #5622 - FIXED: fix table result when source and destination on same one-way segment. #5828
- FIXED: fix occasional segfault when swapping data with osrm-datastore and using
exclude=
#5844 - FIXED: fix crash in MLD alternative search if source or target are invalid #5851
- CHANGED: allow routing past
- Misc:
- CHANGED: Reduce memory usage for raster source handling. #5572
- CHANGED: Add cmake option
ENABLE_DEBUG_LOGGING
to control whether output debug logging. #3427 - CHANGED: updated extent of Hong Kong as left hand drive country. #5535
- FIXED: corrected error message when failing to snap input coordinates #5846
- Infrastructure
- REMOVED: STXXL support removed as STXXL became abandonware. #5760
- Build:
5.22.0
- Changes from 5.21.0
5.21.0
- Changes from 5.20.0
- Features:
- ADDED: all waypoints in responses now contain a distance property between the original coordinate and the snapped location. #5255
- ADDED: if
fallback_speed
is used, a new structurefallback_speed_cells
will describe which cells contain estimated values #5259 - REMOVED: we no longer publish Node 4 or 6 binary modules (they are still buildable from source) #5314
- Table:
- ADDED: new parameter
scale_factor
which will scale the cellduration
values by this factor. #5298 - FIXED: only trigger
scale_factor
code to scan matrix when necessary. #5303 - FIXED: fix bug in reverse offset calculation that sometimes lead to negative (and other incorrect) values in distance table results #5315
- ADDED: new parameter
- Docker:
- Matching:
- CHANGED: matching will now consider edges marked with is_startpoint=false, allowing matching over ferries and other previously non-matchable edge types. #5297
- Profile:
- Features:
5.20.0
- Changes from 5.19.0:
- Table:
- CHANGED: switch to pre-calculated distances for table responses for large speedup and 10% memory increase. #5251
- ADDED: new parameter
fallback_speed
which will fillnull
cells with estimated value #5257 - CHANGED: Remove API check for matrix sources/destination length to be less than or equal to coordinates length. #5298
- FIXED: Fix crashing bug when using fallback_speed parameter with more sources than destinations. #5291
- Features:
- Windows:
- FIXED: Windows builds again. #5249
- Docker:
- CHANGED: switch from Alpine Linux to Debian Buster base images #5281
- Table:
5.19.0
- Changes from 5.18.0:
5.18.0
- Changes from 5.17.0:
- Features:
- Infrastructure:
- Profile:
5.17.1
- Changes from 5.17.0:
- Bugfixes:
- FIXED: Do not combine a segregated edge with a roundabout #5039
- Bugfixes:
5.17.0
- Changes from 5.16.0:
- Bugfixes:
- FIXED: deduplication of route steps when waypoints are used #4909
- FIXED: Use smaller range for U-turn angles in map-matching #4920
- FIXED: Remove the last short annotation segment in
trimShortSegments
#4946 - FIXED: Properly calculate annotations for speeds, durations and distances when waypoints are used with mapmatching #4949
- FIXED: Don't apply unimplemented SH and PH conditions in OpeningHours and add inversed date ranges #4992
- FIXED: integer overflow in
DynamicGraph::Renumber
#5021
- Profile:
- Guidance:
- CHANGED: Don't use obviousness for links bifurcations #4929
- FIXED: Adjust Straight direction modifiers of side roads in driveway handler #4929
- CHANGED: Added post process logic to collapse segregated turn instructions #4925
- ADDED: Maneuver relation now supports
straight
as a direction #4995 - FIXED: Support spelling maneuver relation with British spelling #4950
- Tools:
- ADDED:
osrm-routed
accepts a new property--memory_file
to store memory in a file on disk. #4881 - ADDED:
osrm-datastore
accepts a new parameter--dataset-name
to select the name of the dataset. #4982 - ADDED:
osrm-datastore
accepts a new parameter--list
to list all datasets loaded into memory. #4982 - ADDED:
osrm-datastore
accepts a new parameter--only-metric
to only reload the data that can be updated by a weight update (reduces memory for traffic updates). #5002 - ADDED:
osrm-routed
accepts a new parameter--dataset-name
to select the shared-memory dataset to use. #4982
- ADDED:
- NodeJS:
- Internals
- Documentation:
- ADDED: Add documentation about OSM node ids in nearest service response #4436
- Performance
- Misc:
- ADDED: expose name for datasource annotations as metadata #4973
- Bugfixes:
5.16.0
- Changes from 5.15.2:
- Guidance
- ADDED #4676: Support for maneuver override relation, allowing data-driven overrides for turn-by-turn instructions #4676
- CHANGED #4830: Announce reference change if names are empty
- CHANGED #4835: MAXIMAL_ALLOWED_SEPARATION_WIDTH increased to 12 meters
- CHANGED #4842: Lower priority links from a motorway now are used as motorway links #4842
- CHANGED #4895: Use ramp bifurcations as fork intersections #4895
- CHANGED #4893: Handle motorway forks with links as normal motorway intersections#4893
- FIXED #4905: Check required tags of
maneuver
relations #4905
- Profile:
- FIXED:
highway=service
will now be used for restricted access,access=private
is still disabled for snapping. - ADDED #4775: Exposes more information to the turn function, now being able to set turn weights with highway and access information of the turn as well as other roads at the intersection #4775
- FIXED #4763: Add support for non-numerical units in car profile for maxheight #4763
- ADDED #4872: Handling of
barrier=height_restrictor
nodes #4872
- FIXED:
- Guidance
5.15.2
- Changes from 5.15.1:
- Features:
- ADDED: Exposed the waypoints parameter in the node bindings interface
- Bugfixes:
- FIXED: Segfault causing bug in leg collapsing map matching when traversing edges in reverse
- Features:
5.15.1
- Changes from 5.15.0:
- Bugfixes:
- FIXED: Segfault in map matching when RouteLeg collapsing code is run on a match with multiple submatches
- Guidance:
- Set type of trivial intersections where classes change to Suppressed instead of NoTurn
- Bugfixes:
5.15.0
- Changes from 5.14.3:
- Bugfixes:
- FIXED #4704: Fixed regression in bearings reordering introduced in 5.13 #4704
- FIXED #4781: Fixed overflow exceptions in percent-encoding parsing
- FIXED #4770: Fixed exclude flags for single toll road scenario
- FIXED #4283: Fix overflow on zero duration segments
- FIXED #4804: Ignore no_*_on_red turn restrictions
- Guidance:
- CHANGED #4706: Guidance refactoring step to decouple intersection connectivity analysis and turn instructions generation #4706
- CHANGED #3491: Refactor
isThroughStreet
/Intersection options
- Profile:
- ADDED:
tunnel
as a new class in car profile so that sections of the route with tunnel tags will be marked as such
- ADDED:
- Bugfixes:
5.14.3
- Changes from 5.14.2:
- Features:
- Added a
waypoints
parameter to the match service plugin that accepts indices to input coordinates and treats only those points as waypoints in the response format.
- Added a
- Bugfixes:
- FIXED #4754: U-Turn penalties are applied to straight turns.
- FIXED #4756: Removed too restrictive road name check in the sliproad handler
- FIXED #4731: Use correct weights for edge-based graph duplicated via nodes.
- Profile:
- CHANGED: added Belarus speed limits
- CHANGED: set default urban speed in Ukraine to 50kmh
- Features:
5.14.2
- Changes from 5.14.1:
- Bugfixes:
- FIXED #4727: Erroring when a old .core file is present.
- FIXED #4642: Update checks for EMPTY_NAMEID to check for empty name strings
- FIXED #4738: Fix potential segmentation fault
- Node.js Bindings:
- ADDED: Exposed new
max_radiuses_map_matching
option fromEngingConfig
options
- ADDED: Exposed new
- Tools:
- ADDED: New osrm-routed
max_radiuses_map_matching
command line flag to optionally set a maximum radius for map matching
- ADDED: New osrm-routed
- Bugfixes:
5.14.1
- Changes from 5.14.0
- Bugfixes:
- FIXED: don't use removed alternative candidates in
filterPackedPathsByCellSharing
- FIXED: don't use removed alternative candidates in
- Bugfixes:
5.14.0
- Changes from 5.13
- API:
- ADDED: new RouteStep property
driving_side
that has either "left" or "right" for that step
- ADDED: new RouteStep property
- Misc:
- ADDED: Bundles a rough (please improve!) driving-side GeoJSON file for use with
osrm-extract --location-dependent-data data/driving_side.geojson
- CHANGED: Conditional turn parsing is disabled by default now
- ADDED: Adds a tool to analyze turn instruction generation in a dataset. Useful for tracking turn-by-turn heuristic changes over time.
- CHANGED: Internal refactoring of guidance code as a first step towards a re-runnable guidance pipeline
- ADDED: Now publishing Node 8.x LTS binary modules
- ADDED: Bundles a rough (please improve!) driving-side GeoJSON file for use with
- Profile:
- CHANGED: Remove dependency on turn types and turn modifier in the process_turn function in the
car.lua
profile. Guidance instruction types are not used to influence turn penalty anymore so this will break backward compatibility between profile version 3 and 4.
- CHANGED: Remove dependency on turn types and turn modifier in the process_turn function in the
- Guidance:
- ADDED: New internal flag on "segregated intersections" - in the future, will should allow collapsing of instructions across complex intersection geometry where humans only perceive a single maneuver
- CHANGED: Decrease roundabout turn radius threshold from 25m to 15m - adds some "exit the roundabout" instructions for moderately sized roundabouts that were being missed previously
- Docker:
- CHANGED: switch to alpine 3.6, and use a multistage build to reduce image size
- Build:
- FIX: use LUA_LIBRARY_DIRS to propertly detect Lua on all platforms
- Docs:
- FIX: clarify description of roundabout exit instructions
- Bugfixes:
- FIXED: Fix bug where merge instructions got the wrong direction modifier (PR #4670)
- FIXED: Properly use the
profile.properties.left_hand_driving
property, there was a typo that meant it had no effect - FIXED: undefined behaviour when alternative candidate via node is same as source node (#4691)
- FIXED: ensure libosrm.pc is pushed to the correct location for pkgconfig to find it on all platforms
- FIXED: don't consider empty names + empty refs as a valid name for u-turns
- API:
5.13.0
- Changes from 5.12:
- Profile:
- Append cardinal directions from route relations to ref fields to improve instructions; off by default see
profile.cardinal_directions
- Support of
distance
weight in foot and bicycle profiles - Support of relations processing
- Added
way:get_location_tag(key)
method to get location-dependent tags https://github.com/Project-OSRM/osrm-backend/wiki/Using-location-dependent-data-in-profiles - Added
forward_ref
andbackward_ref
support - Left-side driving mode is specified by a local Boolean flag
is_left_hand_driving
inExtractionWay
andExtractionTurn
- Support literal values for maxspeeds in NO, PL and ZA
- Append cardinal directions from route relations to ref fields to improve instructions; off by default see
- Infrastructure:
- Lua 5.1 support is removed due to lack of support in sol2 https://github.com/ThePhD/sol2/issues/302
- Fixed pkg-config version of OSRM
- Removed
.osrm.core
file since CoreCH is deprecated now.
- Tools:
- Because of boost/program_options#32 with boost 1.65+ we needed to change the behavior of the following flags to not accept
={true|false}
anymore:--use-locations-cache=false
becomes--disable-location-cache
--parse-conditional-restrictions=true
becomes--parse-conditional-restrictions
- The deprecated options
--use-level-cache
and--generate-edge-lookup
- Because of boost/program_options#32 with boost 1.65+ we needed to change the behavior of the following flags to not accept
- Bugfixes:
- Fixed #4348: Some cases of sliproads pre-processing were broken
- Fixed #4331: Correctly compute left/right modifiers of forks in case the fork is curved.
- Fixed #4472: Correctly count the number of lanes using the delimter in
turn:lanes
tag. - Fixed #4214: Multiple runs of
osrm-partition
lead to crash. - Fixed #4348: Fix assorted problems around slip roads.
- Fixed #4420: A bug that would result in unnecessary instructions, due to problems in suffix/prefix detection
- Algorithm
- Deprecate CoreCH functionality. Usage of CoreCH specific options will fall back to using CH with core_factor of 1.0
- MLD uses a unidirectional Dijkstra for 1-to-N and N-to-1 matrices which yields speedup.
- Profile:
5.12.0
- Changes from 5.11:
- Guidance
- now announcing turning onto oneways at the end of a road (e.g. onto dual carriageways)
- Adds new instruction types at the exit of roundabouts and rotaries
exit roundabout
andexit rotary
.
- HTTP:
- New query parameter for route/table/match/trip plugings:
exclude=
that can be used to exclude certain classes (e.g. exclude=motorway, exclude=toll). This is configurable in the profile.
- New query parameter for route/table/match/trip plugings:
- NodeJS:
- New query option
exclude
for the route/table/match/trip plugins. (e.g.exclude: ["motorway", "toll"]
)
- New query option
- Profile:
- New property for profile table:
excludable
that can be used to configure which classes are excludable at query time. - New optional property for profile table:
classes
that allows you to specify which classes you expect to be used. We recommend this for better error messages around classes, otherwise the possible class names are infered automatically.
- New property for profile table:
- Traffic:
- If traffic data files contain an empty 4th column, they will update edge durations but not modify the edge weight. This is useful for updating ETAs returned, without changing route selection (for example, in a distance-based profile with traffic data loaded).
- Infrastructure:
- New file
.osrm.cell_metrics
created byosrm-customize
.
- New file
- Debug tiles:
- Added new properties
type
andmodifier
toturns
layer, useful for viewing guidance calculated turn types on the map
- Added new properties
- Guidance
5.11.0
- Changes from 5.10:
- Features
- BREAKING: Added support for conditional via-way restrictions. This features changes the file format of osrm.restrictions and requires re-extraction
- Internals
- BREAKING: Traffic signals will no longer be represented as turns internally. This requires re-processing of data but enables via-way turn restrictions across highway=traffic_signals
- Additional checks for empty segments when loading traffic data files
- Tunes the constants for turns in sharp curves just a tiny bit to circumvent a mix-up in fork directions at a specific intersection (https://github.com/Project-OSRM/osrm-backend/issues/4331)
- Infrastructure
- Refactor datafacade to make implementing additional DataFacades simpler
- Bugfixes
- API docs are now buildable again
- Suppress unnecessary extra turn instruction when exiting a motorway via a motorway_link onto a primary road (https://github.com/Project-OSRM/osrm-backend/issues/4348 scenario 4)
- Suppress unnecessary extra turn instruction when taking a tertiary_link road from a teritary onto a residential road (https://github.com/Project-OSRM/osrm-backend/issues/4348 scenario 2)
- Various MSVC++ build environment fixes
- Avoid a bug that crashes GCC6
- Re-include .npmignore to slim down published modules
- Fix a pre-processing bug where incorrect directions could be issued when two turns would have similar instructions and we tried to give them distinct values (https://github.com/Project-OSRM/osrm-backend/pull/4375)
- The entry bearing for correct the cardinality of a direction value (https://github.com/Project-OSRM/osrm-backend/pull/4353
- Change timezones in West Africa to the WAT zone so they're recognized on the Windows platform
- Features
5.10.0
- Changes from 5.9:
- Profiles:
- New version 2 profile API which cleans up a number of things and makes it easier to for profiles to include each other. Profiles using the old version 0 and 1 APIs are still supported.
- New required
setup()
function that must return a configuration hash. Storing configuration in globals is deprecated. - Passes the config hash returned in
setup()
as an argument toprocess_node/way/segment/turn
. - Properties are now set in
.properties
in the config hash returend by setup(). - initialize raster sources in
setup()
instead of in a separate callback. - Renames the
sources
helper toraster
. - Renames
way_functions
toprocess_way
(same for node, segment and turn). - Removes
get_restrictions()
. Instead set.restrictions
in the config hash insetup()
. - Removes
get_name_suffix_list()
. Instead set.suffix_list
in the config hash insetup()
. - Renames
Handlers
toWayHandlers
. - Pass functions instead of strings to
WayHandlers.run()
, so it's possible to mix in your own functions. - Reorders arguments to
WayHandlers
functions to matchprocess_way()
. - Profiles must return a hash of profile functions. This makes it easier for profiles to include each other.
- Guidance: add support for throughabouts
- Bugfixes
- Algorithm
- BREAKING: the file format requires re-processing due to the changes on via-ways
- Added support for via-way restrictions
- Profiles:
5.9.2
- API:
- `annotations=durations,weights,speeds` values no longer include turn penalty values ([#4330](https://github.com/Project-OSRM/osrm-backend/issues/4330))
5.9.1
- Infrastructure
- STXXL is not required by default
5.9.0
- Changes from 5.8:
- Algorithm:
- API:
- Exposes
alternatives=Number
parameter overload in addition to the boolean flag. - Support for exits numbers and names. New member
exits
inRouteStep
, based onjunction:ref
on ways Intersection
now has new parameterclasses
that can be set in the profile on each way.
- Exposes
- Profiles:
result.exits
allows you to set a way's exit numbers and names, seejunction:ref
ExtractionWay
now as new propertyforward_classes
andbackward_classes
that can set in theway_function
. The maximum number of classes is 8.- We now respect the
construction
tag. If theconstruction
tag value is not on our whitelist (minor
,widening
,no
) we will exclude the road.
- Node.js Bindings:
- Exposes
alternatives=Number
parameter overload in addition to the boolean flag - Expose
EngineConfig
options in the node bindings
- Exposes
- Tools:
- Exposes engine limit on number of alternatives to generate
--max-alternatives
inosrm-routed
(3 by default)
- Exposes engine limit on number of alternatives to generate
- Infrastructure
- STXXL is not required to build OSRM and is an optional dependency for back-compatibility (ENABLE_STXXL=On)
- OpenMP is only required when the optional STXXL dependency is used
- Bug fixes:
- #4278: Remove superflous continious instruction on a motorway.
5.8.0
- Changes from 5.7
- API:
- polyline6 support in request string
- new parameter
approaches
forroute
,table
,trip
andnearest
requests. This parameter keep waypoints on the curb side. 'approaches' accepts both 'curb' and 'unrestricted' values. Note : the curb side depend on theProfileProperties::left_hand_driving
, it's a global property set once by the profile. If you are working with a planet dataset, the api will be wrong in some countries, and right in others.
- NodeJs Bindings
- new parameter
approaches
forroute
,table
,trip
andnearest
requests.
- new parameter
- Tools
osrm-partition
now ensures it is called beforeosrm-contract
and removes inconsitent .hsgr files automatically.
- Features
- Added conditional restriction support with
parse-conditional-restrictions=true|false
to osrm-extract. This option saves conditional turn restrictions to the .restrictions file for parsing by contract later. Addedparse-conditionals-from-now=utc time stamp
and--time-zone-file=/path/to/file
to osrm-contract - Command-line tools (osrm-extract, osrm-contract, osrm-routed, etc) now return error codes and legible error messages for common problem scenarios, rather than ugly C++ crashes
- Speed up pre-processing by only running the Lua
node_function
for nodes that have tags. Cuts OSM file parsing time in half. - osrm-extract now performs generation of edge-expanded-edges using all available CPUs, which should make osrm-extract significantly faster on multi-CPU machines
- Added conditional restriction support with
- Files
- .osrm.nodes file was renamed to .nbg_nodes and .ebg_nodes was added
- Guidance
- #4075 Changed counting of exits on service roundabouts
- Debug Tiles
- added support for visualising turn penalties to the MLD plugin
- added support for showing the rate (reciprocal of weight) on each edge when used
- added support for turn weights in addition to turn durations in debug tiles
- Bugfixes
- Fixed a copy/paste issue assigning wrong directions in similar turns (left over right)
- #4074: fixed a bug that would announce entering highway ramps as u-turns
- #4122: osrm-routed/libosrm should throw exception when a dataset incompatible with the requested algorithm is loaded
- Avoid collapsing u-turns into combined turn instructions
- API:
5.7.1
- Bugfixes
- #4030 Roundabout edge-case crashes post-processing
5.7.0
- Changes from 5.6
- Algorithm:
- OSRM object has new option
algorithm
that allows the selection of a routing algorithm. - New experimental algorithm: Multi-Level Dijkstra with new toolchain:
- Allows for fast metric updates in below a minute on continental sized networks (osrm-customize)
- Plugins supported:
match
androute
- Quickstart:
osrm-extract data.osm.pbf
,osrm-partition data.osrm
,osrm-customize data.osrm
,osrm-routed --algorithm=MLD data.osrm
- OSRM object has new option
- NodeJs Bindings
- Merged https://github.com/Project-OSRM/node-osrm into repository. Build via
cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_NODE_BINDINGS=On -DENABLE_MASON=On
. OSRM
object has new optionalgorihtm="CH","CoreCH","MLD"
- Merged https://github.com/Project-OSRM/node-osrm into repository. Build via
- Internals
- Shared memory notification via conditional variables on Linux or semaphore queue on OS X and Windows with a limit of 128 OSRM Engine instances
- Files
- .osrm.datasource_index file was removed. Data is now part of .osrm.geometries.
- .osrm.edge_lookup was removed. The option
--generate-edge-lookup
does nothing now. osrm-contract
does not depend on the.osrm.fileIndex
file anymoreosrm-extract
creates new file.osrm.cnbg
and.cnbg_to_ebg
osrm-partition
creates new file.osrm.partition
and.osrm.cells
osrm-customize
creates new file.osrm.mldgr
- Profiles
- Added
force_split_edges
flag to global properties. True value guarantees that segment_function will be called for all segments, but also could double memory consumption
- Added
- Map Matching:
- new option
gaps=split|ignore
to enable/disbale track splitting - new option
tidy=true|false
to simplify traces automatically
- new option
- Algorithm:
5.6.3
- Changes from 5.6.0
- Bugfixes
- #3790 Fix incorrect speed values in tile plugin
- Bugfixes
5.6.2
- Changes from 5.6.0
- Bugfixes
- Fix incorrect forward datasources getter in facade
- Bugfixes
5.6.1
- Changes from 5.6.0
- Bugfixes
- Fix #3754 add restricted penalty on NoTurn turns
- Bugfixes
5.6.0
- Changes from 5.5
- Bugfixes
- Fix #3475 removed an invalid
exit
field from thearrive
maneuver - Fix #3515 adjusted number of
nodes
inannotation
- Fix #3605 Fixed a bug that could lead to turns at the end of the road to be suppressed
- Fix #2844 handle up to 16777215 code units in OSM names
- Fix #3475 removed an invalid
- Infrastructure
- Support building rpm packages.
- Guidance
- No longer emitting turns on ferries, if a ferry should use multiple docking locations
- Profiles
- Removed the
./profile.lua -> ./profiles/car.lua
symlink. Use specific profiles from theprofiles
directory. properties
object has a newweight_name
field, default value is "duration"properties
object has a newweight_precision
field that specifies a decimal precision of edge weights, default value 1- In
way_function
the filedforward_rate
andbackward_rate
ofExtractionWay
can now be set. They have the same interpretation for the way weight asforward_speed
andbackward_speed
for the edge duration. The unit of rate is meters per weight unit, so higher values will be prefered during routing. turn_function
now does not return an integer but takes in aExtractionTurn
object and can modify theweight
andduration
fieldssegment_function
now takes in aExtractionSegment
object and can modifyweight
andduration
fieldsproperties.uturn_penalty
is deprecated. Set it in theturn_function
. The turn type is exposed asExtractionTurn::direction_modifier
.properties.traffic_light_penalty
is deprecated. Traffic light penalties now need to be set over in the turn function. Each turn with a traffic light is marked withExtractionTurn::has_traffic_light = true
.- Renamed the helper file
profiles/lib/directional.lua
toprofiles/lib/tags.lua
since it now provides more general tags parsing utility functions. - The car and foot profiles now depend on the helper file
profiles/lib/handlers.lua
.
- Removed the
- Infrastructure
- Disabled link-time optimized (LTO) builds by default. Enable by passing
-DENABLE_LTO=ON
tocmake
if you need the performance and know what you are doing. - Datafile versioning is now based on OSRM semver values, rather than source code checksums. Datafiles are compatible between patch levels, but incompatible between minor version or higher bumps.
- libOSRM now creates an own watcher thread then used in shared memory mode to listen for data updates
- Disabled link-time optimized (LTO) builds by default. Enable by passing
- Tools:
- Added osrm-extract-conditionals tool for checking conditional values in OSM data
- Trip Plugin
- Added a new feature that finds the optimal route given a list of waypoints, a source and a destination. This does not return a roundtrip and instead returns a one way optimal route from the fixed source to the destination points.
- Bugfixes
5.5.1
- Changes from 5.5.0
- API:
- Adds
generate_hints=true
(true
by default) which lets user disableHint
generating in the response. Use if you don't needHint
s!
- Adds
- Bugfixes
- Fix #3418 and ensure we only return bearings in the range 0-359 in API responses
- Fixed a bug that could lead to emitting false instructions for staying on a roundabout
- API:
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 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.luarestrictions
is now used for namespaced restrictions and restriction exceptions (e.g.restriction:motorcar=
as well asexcept=motorcar
)- replaced lhs/rhs profiles by using test defined profiles
- Handle
oneway=alternating
(routed over with penalty) separately fromoneway=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 (#3114)
- For single coordinate geometries the GeoJSON
Point
encoding was broken. We now always emitLineString
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
- Prettier API documentation now generated via
npm run build-api-docs
outputbuild/docs
- API:
5.4.3
- Changes from 5.4.2
- Bugfixes
- #3254 Fixed a bug that could end up hiding roundabout instructions
- #3260 fixed a bug that provided the wrong location in the arrival instruction
- Bugfixes
5.4.2
- Changes from 5.4.1
- Bugfixes
- #3032 Fixed a bug that could result in emitting
invalid
as an instruction type on sliproads with mode changes - #3085 Fixed an outdated assertion that could throw without a cause for concern
- #3179 Fixed a bug that could trigger an assertion in TurnInstruciton generation
- #3032 Fixed a bug that could result in emitting
- Bugfixes
5.4.1
- Changes from 5.4.0
- Bugfixes
- #3016: Fixes shared memory updates while queries are running
- Bugfixes
5.4.0
- 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
andname
as separate fields. Do no use ref or destination as fallback for name value - the default profile for car now ignores HOV only roads
- Guidance
- Handle Access tags for lanes, only considering valid lanes in lane-guidance (think car | car | bike | car)
- Improved the detection of non-noticeable name-changes
- Summaries have been improved to consider references as well
- API:
annotations=true
now returns the data source id for each segment asdatasources
- Reduced semantic of merge to refer only to merges from a lane onto a motorway-like road
- new
ref
field in theRouteStep
object. It contains the reference code or name of a way. Previously merged into thename
property likename (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
- Fixed a bug where some roads could be falsly identified as sliproads
- Fixed a bug where roundabout intersections could result in breaking assertions when immediately exited
- Infrastructure:
- Adds a feature to limit results in nearest service with a default of 100 in
osrm-routed
- Adds a feature to limit results in nearest service with a default of 100 in
- Profiles
5.3.0
-
Changes from 5.3.0-rc.3
- Guidance
- Only announce
use lane
on required turns (not using all lanes to go straight) - Moved
lanes
to the intersection objects. This is BREAKING in relation to other Release Candidates but not with respect to other releases.
- Only announce
- Bugfixes
- Fix BREAKING: bug that could result in failure to load 'osrm.icd' files. This breaks the dataformat
- Fix: bug that results in segfaults when
use lane
instructions are suppressed
- Guidance
-
Changes form 5.2.7
- API
- Introduces new
TurnType
in the form ofuse lane
. The type indicates that you have to stick to a lane without turning - Introduces
lanes
to theIntersection
object. The lane data contains both the markings at the intersection and a flag indicating if they can be chosen for the next turn - Removed unused
-s
fromosrm-datastore
- Introduces new
- Guidance
- Only announce
use lane
on required turns (not using all lanes to go straight) - Improved detection of obvious turns
- Improved turn lane detection
- Reduce the number of end-of-road instructions in obvious cases
- Only announce
- Profile:
- bicycle.lua: Surface speeds never increase the actual speed
- Infrastructure
- Add 32bit support
- Add ARM NEON/VFP support
- Fix Windows builds
- Optimize speed file updates using mmap
- Add option to disable LTO for older compilers
- BREAKING: The new turn type changes the turn-type order. This breaks the data format.
- BREAKING: Turn lane data introduces two new files (osrm.tld,osrm.tls). This breaks the fileformat for older versions.
- Bugfixes:
- Fix devide by zero on updating speed data using osrm-contract
- API
5.3.0 RC3
- Changes from 5.3.0-rc.2
- Guidance
- Improved detection of obvious turns
- Improved turn lane detection
- Bugfixes
- Fix bug that didn't chose minimal weights on overlapping edges
- Guidance
5.3.0 RC2
- Changes from 5.3.0-rc.1
- Bugfixes
- Fixes invalid checks in the lane-extraction part of the car profile
- Bugfixes
5.3.0 RC1
- API
- Introduces new `TurnType` in the form of `use lane`. The type indicates that you have to stick to a lane without turning
- Introduces lanes to the route response. The lane data contains both the markings at the intersection and a flag indicating their involvement in the turn
- Infrastructure
- BREAKING: The new turn type changes the turn-type order. This breaks the **data format**.
- BREAKING: Turn lane data introduces two new files (osrm.tld,osrm.tls). This breaks the fileformat for older versions.
5.2.5
- Bugfixes
- Fixes a segfault caused by incorrect trimming logic for very short steps.
5.2.4
- Bugfixes:
- Fixed in issue that arised on roundabouts in combination with intermediate intersections and sliproads
5.2.3
- Bugfixes:
- Fixed an issue with name changes in roundabouts that could result in crashes
5.2.2
Changes from 5.2.1
- Bugfixes:
- Buffer overrun in tile plugin response handling
5.2.1
Changes from 5.2.0
- Bugfixes:
- Removed debug statement that was spamming the console
5.2.0
Changes from 5.2.0 RC2
- Bugfixes:
- Fixed crash when loading shared memory caused by invalid OSM IDs segment size.
- Various small instructions handling fixes
Changes from 5.1.0
-
API:
- new parameter
annotations
forroute
,trip
andmatch
requests. Returns additional data about each coordinate along the selected/matched route line perRouteLeg
:- duration of each segment
- distance of each segment
- OSM node ids of all segment endpoints
- Introducing Intersections for Route Steps. This changes the API format in multiple ways.
bearing_before
/bearing_after
ofStepManeuver
are now deprecated and will be removed in the next major releaselocation
ofStepManeuvers
is now deprecated and will be removed in the next major release- every
RouteStep
now has propertyintersections
containing a list ofIntersection
objects.
- Support for destination signs. New member
destinations
inRouteStep
, based ondestination
anddestination:ref
- Support for name pronunciations. New member
pronunciation
inRouteStep
, based onname:pronunciation
- new parameter
-
Profile changes:
- duration parser now accepts P[n]DT[n]H[n]M[n]S, P[n]W, PTHHMMSS and PTHH:MM:SS ISO8601 formats.
result.destinations
allows you to set a way's destinationsresult.pronunciation
allows you to set way name pronunciationshighway=motorway_link
no longer impliesoneway
as per the OSM Wiki
-
Infrastructure:
- BREAKING: Changed the on-disk encoding of the StaticRTree to reduce ramIndex file size. This breaks the data format
- BREAKING: Intersection Classification adds a new file to the mix (osrm.icd). This breaks the fileformat for older versions.
- Better support for osrm-routed binary upgrade on the fly [UNIX specific]:
- Open sockets with SO_REUSEPORT to allow multiple osrm-routed processes serving requests from the same port.
- Add SIGNAL_PARENT_WHEN_READY environment variable to enable osrm-routed signal its parent with USR1 when it's running and waiting for requests.
- Disable http access logging via DISABLE_ACCESS_LOGGING environment variable.
-
Guidance:
- BREAKING: modifies the file format with new internal identifiers
- improved detection of turning streets, not reporting new-name in wrong situations
- improved handling of sliproads (emit turns instead of 'take the ramp')
- improved collapsing of instructions. Some 'new name' instructions will be suppressed if they are without alternative and the segment is short
-
Bugfixes
- fixed broken summaries for very short routes
5.2.0 RC2
Changes from 5.2.0 RC1
-
Guidance:
- improved handling of sliproads (emit turns instead of 'take the ramp')
- improved collapsing of instructions. Some 'new name' instructions will be suppressed if they are without alternative and the segment is short
- BREAKING: modifies the file format with new internal identifiers
-
API:
- paramater
annotate
was renamed toannotations
. annotation
as accidentally placed inRoute
instead ofRouteLeg
- Support for destination signs. New member
destinations
inRouteStep
, based ondestination
anddestination:ref
- Support for name pronunciations. New member
pronunciation
inRouteStep
, based onname:pronunciation
- Add
nodes
property toannotation
inRouteLeg
containing the ids of nodes covered by the route
- paramater
-
Profile changes:
result.destinations
allows you to set a way's destinationsresult.pronunciation
allows you to set way name pronunciationshighway=motorway_link
no longer impliesoneway
as per the OSM Wiki
-
Infrastructure
- BREAKING: Changed the on-disk encoding of the StaticRTree to reduce ramIndex file size. This breaks the data format
-
Bugfixes
- fixed broken summaries for very short routes
5.2.0 RC1
Changes from 5.1.0
-
API:
- new parameter
annotate
forroute
andmatch
requests. Returns additional data about each coordinate along the selected/matched route line. - Introducing Intersections for Route Steps. This changes the API format in multiple ways.
bearing_before
/bearing_after
ofStepManeuver
are now deprecated and will be removed in the next major releaselocation
ofStepManeuvers
is now deprecated and will be removed in the next major release- every
RouteStep
now has propertyintersections
containing a list ofIntersection
objects.
- new parameter
-
Profile changes:
- duration parser now accepts P[n]DT[n]H[n]M[n]S, P[n]W, PTHHMMSS and PTHH:MM:SS ISO8601 formats.
-
Infrastructure:
- Better support for osrm-routed binary upgrade on the fly [UNIX specific]:
- Open sockets with SO_REUSEPORT to allow multiple osrm-routed processes serving requests from the same port.
- Add SIGNAL_PARENT_WHEN_READY environment variable to enable osrm-routed signal its parent with USR1 when it's running and waiting for requests.
- BREAKING: Intersection Classification adds a new file to the mix (osrm.icd). This breaks the fileformat for older versions.
- Disable http access logging via DISABLE_ACCESS_LOGGING environment variable.
- Better support for osrm-routed binary upgrade on the fly [UNIX specific]:
-
Guidance:
- improved detection of turning streets, not reporting new-name in wrong situations
5.1.0
Changes with regard to 5.0.0
-
API:
- added StepManeuver type
roundabout turn
. The type indicates a small roundabout that is treated as an intersection (turn right at the roundabout for first exit, go straight at the roundabout...) - added StepManeuver type
on ramp
andoff ramp
to distinguish between ramps that enter and exit a highway. - reduced new name instructions for trivial changes
- combined multiple turns into a single instruction at segregated roads`
- added StepManeuver type
-
Profile Changes: - introduced a suffix_list / get_name_suffix_list to specify name suffices to be suppressed in name change announcements - street names are now consistently assembled for the car, bike and walk profile as: "Name (Ref)" as in "Berlin (A5)" - new
car.lua
dependencylib/destination.lua
- register a way's .nodes() function for use in the profile's way_function. -
Infrastructure - BREAKING: reordered internal instruction types. This breaks the data format - BREAKING: Changed the on-disk encoding of the StaticRTree for better performance. This breaks the data format
-
Fixes: - Issue #2310: post-processing for local paths, fixes #2310 - Issue #2309: local path looping, fixes #2309 - Issue #2356: Make hint values optional - Issue #2349: Segmentation fault in some requests - Issue #2335: map matching was using shortest path with uturns disabled - Issue #2193: Fix syntax error position indicators in parameters queries - Fix search with u-turn - PhantomNode packing in MSVC now the same on other platforms - Summary is now not malformed when including unnamed roads - Emit new-name on when changing fron unanmed road to named road
5.0.0
Changes with regard 5.0.0 RC2:
- API:
- if
geometry=geojson
is passed the resulting geometry can be a LineString or Point depending on how many coordinates are present. - the removal of the summary field was revered. for
steps=flase
the field will always be an empty string.
- if
Changes with regard to 4.9.1:
-
API:
- BREAKING: Complete rewrite of the HTTP and library API. See detailed documentation in the wiki.
- BREAKING: The default coordinate order is now
longitude, latidue
. Exception: Polyline geometry which follow the original Google specification oflatitdue, longitude
. - BREAKING: Polyline geometries now use precision 5, instead of previously 6
- BREAKING: Removed GPX support
- New service
tile
which serves debug vector tiles of the road network - Completely new engine for guidance generation:
- Support for highway ramps
- Support for different intersection types (end of street, forks, merges)
- Instruction post-processing to merge unimportant instructions
- Improved handling of roundabouts
-
Tools:
- BREAKING: Renamed osrm-prepare to osrm-contract
- BREAKING: Removes profiles from osrm-contract, only needed in osrm-extract.
- Abort processing in osrm-extract if there are no snappable edges remaining.
- Added .properties file to osrm-extract ouput.
- Enables the use of multiple segment-speed-files on the osrm-contract command line
-
Profile changes:
- Remove movable bridge mode
- Add
maxspeed=none
tag to car profile. - A
side_road
tag support for the OSRM car profile.
-
Fixes:
- Issue #2150: Prevents routing over delivery ways and nodes
- Issue #1972: Provide uninstall target
- Issue #2072: Disable alternatives by default and if core factor < 1.0
- Issue #1999: Fix unpacking for self-loop nodes not in core.
-
Infrastructure:
- Cucumber test suit is now based on cucumber-js, removes Ruby as dependency
- Updated to mapbox/variant v1.1
- Updated to libosmium v2.6.1
- Remove GeoJSON based debugging output, replaced by debug tiles
5.0.0 RC2
- Profiles:
properties.allow_uturns_at_via
->properties.continue_straight_at_waypoint
(value is inverted!)
- API:
- Removed summary from legs property
- Disable steps and alternatives by default
- Fix
code
field: 'ok' -> 'Ok' - Allow 4.json and 4.3.json format
- Conform to v5 spec and support "unlimited" as radiuses value.
uturns
parameter was replaced bycontinue_straight
(value is inverted!)
- Features:
- Report progress for gennerating edge expanded edges in the edge based graph factory
- Add maxspeed=none tag to car profile.
- Optimize StaticRTree code: speedup 2x (to RC1)
- Optimize DouglasPeucker code: speedup 10x (to RC1)
- Optimize WebMercator projection: speedup 2x (to RC1)
- Bugs:
- #2195: Resolves issues with multiple includedirs in pkg-config file
- #2219: Internal server error when using the match plugin
- #2027: basename -> filename
- #2168: Report correct position where parsing failed
- #2036: Add license to storage and storage config exposed in public API
- Fix uturn detection in match plugin
- Add missing -lz to fix linking of server-tests
5.0.0 RC1
- Renamed osrm-prepare into osrm-contract
- osrm-contract does not need a profile parameter anymore
- New public HTTP API, find documentation here
- POST support is discontinued, please use library bindings for more complex requests
- Removed timestamp plugin
- Coordinate order is now Longitude,Latitude
- Cucumber tests now based on Javascript (run with
npm test
) - Profile API changed:
forward_mode
andbackward_mode
now need to be selected from a pre-defined list- Global profile properties are now stored in a global
properties
element. This includes:properties.traffic_signal_penalty
properties.use_turn_restrictions
properties.u_turn_penalty
properties.allow_u_turn_at_via