You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
New functions for iterating over specific item types in buffers
(osmium::memory::Buffer::select()), over specific subitems
(osmium::OSMObject::subitems()), and for iterating over all rings of
an area (osmium::Areas::outer_rings(), inner_rings()).
Debug output optionally prints CRC32 when add_crc32 file option is set.
Changed
XML parser will not allow any XML entities which are usually not used in OSM
files anyway. This can help avoiding DOS attacks.
Removed SortedQueue implementation which was never used.
Also incorporate Locations in NodeRefs into CRC32 checksums. This means
all checksums will be different compared to earlier versions of libosmium.
The completely new algorithm for assembling multipolygons is much faster,
has better error reporting, generates statistics and can build more complex
multipolygons correctly. The ProblemReporter classes have changed to make
this happen, if you have written your own, you have to fix it.
Sparse node location stores are now only sorted if needed, ie. when nodes
come in unordered.
Fixed
Output operator for Location shows full precision.
Undefined behaviour in WKB writer and types_from_string() function.
Fix unsigned overflow in pool.hpp.
OSM objects are now ordered by type (nodes, then ways, then relations),
then ID, then version, then timestamp. Ordering by timestamp is normally
not necessary, because there can't be two objects with same type, ID, and
version but different timestamp. But this can happen when diffs are
created from OSM extracts, so we check for this here. This change also
makes sure IDs are always ordered by absolute IDs, positives first, so
order is 0, 1, -1, 2, -2, ...
Data corruption bug fixed in disk based indexes (used for the node
location store for instance). This only affected you, if you created
and index, closed it, and re-opened it (possibly in a different process)
and if there were missing nodes. If you looked up those nodes, you got
location (0,0) back instead of an error.