1#ifndef OSMIUM_OSM_AREA_HPP
2#define OSMIUM_OSM_AREA_HPP
53 template <
typename TDerived,
typename T>
109 return id < 0 ? -area_id : area_id;
127 template <
typename TDerived,
typename T>
169 std::pair<size_t, size_t> counter{0, 0};
171 for (
const auto& item : *
this) {
172 switch (item.type()) {
192 assert(
false &&
"Children of Area can only be outer/inner_ring and tag_list.");
236 box.extend(ring.envelope());
osmium::memory::ItemIteratorRange< const osmium::InnerRing > inner_rings(const osmium::OuterRing &outer) const
Definition area.hpp:223
std::pair< size_t, size_t > num_rings() const
Definition area.hpp:168
static constexpr bool is_compatible_to(osmium::item_type t) noexcept
Definition area.hpp:138
bool from_way() const noexcept
Definition area.hpp:148
static constexpr osmium::item_type itemtype
Definition area.hpp:136
Area()
Definition area.hpp:130
osmium::memory::ItemIteratorRange< const osmium::OuterRing > outer_rings() const
Definition area.hpp:213
osmium::Box envelope() const noexcept
Definition area.hpp:233
bool is_multipolygon() const
Definition area.hpp:204
osmium::object_id_type orig_id() const noexcept
Definition area.hpp:157
static constexpr osmium::item_type itemtype
Definition area.hpp:84
InnerRing()
Definition area.hpp:90
static constexpr bool is_compatible_to(osmium::item_type t) noexcept
Definition area.hpp:86
NodeRefList(osmium::item_type itemtype) noexcept
Definition node_ref_list.hpp:65
OSMObject(osmium::memory::item_size_type size, osmium::item_type type)
Definition object.hpp:102
unsigned_object_id_type positive_id() const noexcept
Get absolute value of the ID of this object.
Definition object.hpp:123
osmium::memory::ItemIteratorRange< T > subitems()
Definition object.hpp:415
static constexpr osmium::item_type itemtype
Definition area.hpp:64
OuterRing()
Definition area.hpp:70
static constexpr bool is_compatible_to(osmium::item_type t) noexcept
Definition area.hpp:66
Definition osm_object_builder.hpp:401
Definition item_iterator.hpp:175
unsigned char * next() noexcept
Definition item.hpp:155
Code related to the building of areas (multipolygons) from relations.
Definition assembler.hpp:55
Classes for building OSM objects and other items in buffers.
Definition attr.hpp:62
Namespace for everything in the Osmium library.
Definition assembler.hpp:53
osmium::object_id_type object_id_to_area_id(osmium::object_id_type id, osmium::item_type type) noexcept
Definition area.hpp:104
item_type
Definition item_type.hpp:45
@ tag_list
Definition item_type.hpp:53
@ relation_member_list
Definition item_type.hpp:55
@ way_node_list
Definition item_type.hpp:54
@ changeset_discussion
Definition item_type.hpp:59
@ relation_member_list_with_full_members
Definition item_type.hpp:56
@ relation
Definition item_type.hpp:50
@ node
Definition item_type.hpp:48
@ changeset
Definition item_type.hpp:52
@ area
Definition item_type.hpp:51
@ undefined
Definition item_type.hpp:47
@ way
Definition item_type.hpp:49
@ outer_ring
Definition item_type.hpp:57
@ inner_ring
Definition item_type.hpp:58
int64_t object_id_type
Type for OSM object (node, way, or relation) IDs.
Definition types.hpp:45
osmium::object_id_type area_id_to_object_id(osmium::object_id_type id) noexcept
Definition area.hpp:118