Added
- Add "ids" output format. New IDS output format that is similar to the OPL format, but only the entity type and id is written out.
- Add convenience functions
left()
,right()
,top()
,bottom()
to accessosmium::Box
boundaries. - Add polygon output to WKB factory.
- Add functions to access storage from
node_locations_for_ways
handler. - Add flag
osmium::io::buffers_type
for telling theReader
class whether you want buffers read to only contain a single type of OSM entity. - Add convenient named
nodes()
,ways()
, andrelations()
accessor functions tonwr_array
class. - Add
DeltaDecode::value()
accessor function. - Add variant of the
Buffer::purge_removed()
function which doesn't take a callback parameter.
Changed
- Different varint decoding for faster PBF decoding. This makes PBF decoding about 15% faster.
- Several code optimmizations in (PBF) writer code that speed up writing of OSM files considerably while using less CPU and spreading the load on multiple CPUs.
- Use memset/memcpy instead of
std::fill_n
andstd::copy
in object builder for some slight speedups. - Ignore metadata setting on reader for history/change files. History and change files must be read with metadata, because otherwise the information is lost whether an object is visible or deleted. So ignore this setting in that case.
- On Linux: Use fadvise() to tell kernel about our reading patterns:
- Tell kernel that we are reading OSM files sequentially. This
should improve pre-fetching of data blocks. - Tell kernel that we are done with block so they can be released.
This means we don't hog the buffer cache for something that
will, in all likelyhood, not be needed any more.
- Tell kernel that we are reading OSM files sequentially. This
- Use assert() instead of exception in "can not happen" situation in the relations manager code.
- Various code cleanups.
Fixed
- Test failure with
add_tag_list
on some systems. - Test framework fix for aarch64 architecture.
- Remove undefined behaviour in bzip2 compression code.
- Rename some local variables to not shadow member functions.
- Wrap
osmium::util::MemoryMapping::unmap()
in try/catch on Windows also because we call this from a noexcept function. - Removed superfluous
std::forward
s and fixed code that calledstd::forward
multiple times on the same object. - Fix in OPL parser which could lead to invalid data being generated.
- Fixed three bugs in O5M parser which could lead to an infinit loop or segmentation faults.