Skip to content

Version 2.11.0

Compare
Choose a tag to compare
@joto joto released this 14 Jan 10:51
· 1129 commits to master since this release

Added

  • New index::RelationsMap(Stash|Index) classes implementing an index for
    looking up parent relation IDs given a member relation ID.
  • Add get_noexcept() method to all index maps. For cases where ids are
    often not in the index using this can speed up a program considerably.
  • New non-const WayNodeList::operator[].
  • Default constructed "invalid" Coordinates.
  • Tile constructor from web mercator coordinates and some helper
    functions for tile arithmetic.
  • Tag matcher matching keys using a regex.
  • New envelope() functions on NodeRefList, Way, and Area returning a
    Box object with the geometric envelope of the object.
  • Add amenity_list example.

Changed

  • Replaced the implementation for the web mercator projection using the usual
    tan-formula with a polynomial approximation which is much faster and good
    enough for OSM data which only has ~1cm resolution anyway. See
    https://github.com/osmcode/mercator-projection for all the details and
    benchmarks. You can disable this by defining the macro
    OSMIUM_USE_SLOW_MERCATOR_PROJECTION before including any of the Osmium
    headers.
  • Removed the outdated Makefile. Always use CMake directly to build.
  • Refactoring of osmium::apply() removing the resursive templates for faster
    compile times and allowing rvalue handlers.
  • Lots of code and test cleanups and more documentation.

Fixed

  • Handle endianess on FreeBSD properly.
  • Fixed doxygen config for reproducible builds.