1 #ifndef OSMIUM_AREA_MULTIPOLYGON_MANAGER_HPP 2 #define OSMIUM_AREA_MULTIPOLYGON_MANAGER_HPP 75 template <
typename TAssembler>
117 if (type ==
nullptr) {
136 std::vector<const osmium::Way*> ways;
138 for (
const auto& member : relation.
members()) {
139 if (member.ref() != 0) {
141 assert(ways.back() !=
nullptr);
146 TAssembler assembler{m_assembler_config};
147 assembler(relation, ways, this->
buffer());
148 m_stats += assembler.stats();
173 TAssembler assembler{m_assembler_config};
174 assembler(way, this->
buffer());
175 m_stats += assembler.stats();
189 #endif // OSMIUM_AREA_MULTIPOLYGON_MANAGER_HPP WayNodeList & nodes()
Definition: way.hpp:89
void after_way(const osmium::Way &way)
Definition: multipolygon_manager.hpp:154
const TagList & tags() const
Get the list of tags for this object.
Definition: object.hpp:327
type
Definition: entity_bits.hpp:63
void way(const osmium::Way &) const noexcept
Definition: handler.hpp:81
RelationMemberList & members()
Get a reference to the member list.
Definition: relation.hpp:186
osmium::memory::Buffer & buffer() noexcept
Access the output buffer.
Definition: relations_manager.hpp:255
Definition: relation.hpp:168
const assembler_config_type m_assembler_config
Definition: multipolygon_manager.hpp:79
const_iterator cbegin() const noexcept
Definition: collection.hpp:164
Definition: entity_bits.hpp:72
size_type size() const noexcept
Definition: collection.hpp:152
bool has_tag(const char *key, const char *value) const noexcept
Definition: tag.hpp:159
MultipolygonManager(assembler_config_type assembler_config, osmium::TagsFilter filter=osmium::TagsFilter{true})
Definition: multipolygon_manager.hpp:96
osmium::TagsFilter m_filter
Definition: multipolygon_manager.hpp:83
const area_stats & stats() const noexcept
Definition: multipolygon_manager.hpp:105
Definition: relation.hpp:57
Namespace for everything in the Osmium library.
Definition: assembler.hpp:53
void relation(const osmium::Relation &relation)
Definition: relations_manager.hpp:484
area_stats m_stats
Definition: multipolygon_manager.hpp:81
Definition: location.hpp:53
const_iterator cend() const noexcept
Definition: collection.hpp:168
void possibly_flush()
Flush the output buffer if it is full.
Definition: relations_manager.hpp:270
const osmium::Way * get_member_way(osmium::object_id_type id) const noexcept
Definition: relations_manager.hpp:209
osmium::Location & location() noexcept
Definition: node_ref.hpp:85
bool new_relation(const osmium::Relation &relation) const
Definition: multipolygon_manager.hpp:113
bool ends_have_same_location() const
Definition: way.hpp:142
typename TAssembler::config_type assembler_config_type
Definition: multipolygon_manager.hpp:78
Definition: multipolygon_manager.hpp:76
const NodeRef & front() const noexcept
Definition: node_ref_list.hpp:126
const NodeRef & back() const noexcept
Definition: node_ref_list.hpp:138
Definition: relations_manager.hpp:301
const char * get_value_by_key(const char *key, const char *default_value=nullptr) const noexcept
Definition: tag.hpp:127
size_type size() const noexcept
Definition: node_ref_list.hpp:83
void complete_relation(const osmium::Relation &relation)
Definition: multipolygon_manager.hpp:135