Fast and flexible C++ library for working with OpenStreetMap data.
BSL-1.0 License
Bot releases are visible (Hide)
Published by joto about 7 years ago
RelationsManager
class superseeds the relations::Collector
class. The new class is much more modular and easier to extend. If you are using the Collector class, you are encouraged to switch.MultipolygonManager
based on the RelationsManager
class superseeds the MultipolygonCollector
class. The examples have been changed to use the new class and all users are encouraged to switch. There is also a MultipolygonManagerLegacy
class if you still need old-style multipolygon support (see below).FlexMem
index class that works with input files of any size and stores the index in memory. This should now be used as the default index for node location stores. Several example programs now use this index.CallbackBuffer
class, basically a convenient wrapper around the Buffer
class with an additional callback function that is called whenever the buffer is full.ItemStash
class for storing OSM objects in memory.osmium::geom::overlaps()
function to check if two Box
objects overlap.IdSet::used_memory()
to get estimate of memory used in the set.is_defined()
and is_undefined()
methods on Location
class.osmium_index_lookup
program.)Assembler
now doesn't work with old-style multipolygons (those are multipolygon relations with the tags on the outer ways(s) instead of on the relation) any more. Because old-style multipolygons are now (mostly) gone from the OSM database this is usually what you want. The new AssemblerLegacy
class can be used if you actually need support for old-style multipolygons, for instance if you are working with historical data. (In that case you also need to use the MultipolygonManagerLegacy
class instead of the MultipolygonManager
class.)thread::Pool
instances in Reader
and Writer
for special use cases.Buffer
will now work with any capacity parameter, it is always rounded up for proper alignment. Buffer constructor with three arguments will now check that commmitted is not larger than capacity.ChangesetDiscussionBuilder::add_comment_text()
could fail silently instead of throwing an exception.osmium_location_cache_create
, the index file written is always truncated first.Published by joto over 7 years ago
Published by joto over 7 years ago
TagMatcher::operator()
.Reader::read()
function will now always return an invalid buffer exactly once to signal EOF.osmium/index/map
headers and osmium/index/node_locations_map.hpp
(or osmium/handler/node_locations_for_ways.hpp
) doesn't matter any more.Published by joto over 7 years ago
Published by joto over 7 years ago
TagsFilter::set_default_result()
function.Buffer
if necessary for alignment instead ofBuffer::reserve_space()
. (Issue #202.)ObjectPointerCollection::unique()
now removes elements at end.==
operator.Published by joto over 7 years ago
Filter::count()
method didn't compile at all.Published by joto over 7 years ago
TagMatcher
and TagsFilter
classes for more flexibly matching tags andosmium::tags::Filter
classes.index::RelationsMap(Stash|Index)
classes to also allownrw_array
helper class.ObjectPointerCollection::unique()
function.ignore_invalid_locations
is set, the Assembler will pretend they weren'tosmium::area::Assembler::operator()
will now return a boolean reportingAssembler
class into three classes: Thedetail::BasicAssembler
is now the parent class. Assembler
is the childGeomAssembler
also derives fromBasicAssembler
and builds areas without taking tags into account at all.Projection
class can do any projection supported by the Proj.4build_tag_list*
functions in builder_helper.hpp
as deprecated. Youosmium/builder/attr.hpp
instead.osmium::tags::match_(any|all|none)_of
tags::Filter
.get_noexcept()
in NodeLocationsForWays
handler.-pthread
compiler and linker options on Linux/OSX. This should fix--as-needed
option is used.Filter::count()
method didn't compile at all.Published by joto almost 8 years ago
get_noexcept()
method to all index maps. For cases where ids areenvelope()
functions on NodeRefList
, Way
, and Area
returning aBox
object with the geometric envelope of the object.amenity_list
example.OSMIUM_USE_SLOW_MERCATOR_PROJECTION
before including any of the OsmiumMakefile
. Always use CMake directly to build.osmium::apply()
removing the resursive templates for fasterPublished by joto almost 8 years ago
Published by joto almost 8 years ago
Published by joto almost 8 years ago
Published by joto almost 8 years ago
Reader
can take an additional optional read_meta
flag. If this isIdSet
virtual class with two implementations: IdSetDense
andIdSetSmall
. Used to efficiently store a set of Ids. This is often neededFindOsmium.cmake
CMake script can now check a current enough libosmiumOSMObjectBuilder::add_user()
is now optional, and the method wasset_user()
. (add_user()
is marked as deprecated.)Builder::add_item()
now takes a reference instead of pointer (old versionBoolVector
has been deprecated in favour of the new IdSet
classes.is_available()
andget_availability_and_offset()
methods.~
operator for entity_bits
doesn't set unused bits any more.Published by joto about 8 years ago
Tile
struct.osmium::io::Reader()
and a ProgressBar
OSMObject::set_timestamp(const char*)
function.Published by joto about 8 years ago
pop
type calls and queue underruns when OSMIUM_DEBUG_QUEUE_SIZE
std::unordered_map
instead of std::map
in PBF string table codePublished by joto over 8 years ago
Published by joto over 8 years ago
New release because I forgot to update the version number in version.hpp.
Published by joto over 8 years ago
osmium::memory::Buffer::select()
), over specific subitemsosmium::OSMObject::subitems()
), and for iterating over all rings ofosmium::Areas::outer_rings(
), inner_rings()
).add_crc32
file option is set.types_from_string()
function.Published by joto over 8 years ago
WITH_PROFILING
option to CMake config. When enabled, this sets the-fno-omit-frame-pointer
compiler option.osmium_area_test
now uses cerr
instead of cout
forPublished by joto over 8 years ago
test/t/builder/test_attr.cpp
can give you an idea how it works.is_closed()
in area