Libosmium
2.20.0
Fast and flexible C++ library for working with OpenStreetMap data
|
#include <multipolygon_collector.hpp>
Public Member Functions | |
MultipolygonCollector (const assembler_config_type &assembler_config) | |
const area_stats & | stats () const noexcept |
bool | keep_relation (const osmium::Relation &relation) const |
bool | keep_member (const osmium::relations::RelationMeta &, const osmium::RelationMember &member) const |
void | way_not_in_any_relation (const osmium::Way &way) |
void | complete_relation (const osmium::relations::RelationMeta &relation_meta) |
void | flush () |
osmium::memory::Buffer | read () |
Public Member Functions inherited from osmium::relations::Collector< MultipolygonCollector< TAssembler >, false, true, false > | |
Collector () | |
uint64_t | used_memory () const |
HandlerPass2 & | handler (const callback_func_type &callback=nullptr) |
osmium::memory::Buffer & | members_buffer () |
bool | is_available (osmium::item_type type, osmium::object_id_type id) |
size_t | get_offset (osmium::item_type type, osmium::object_id_type id) |
std::pair< bool, size_t > | get_availability_and_offset (osmium::item_type type, osmium::object_id_type id) |
void | read_relations (TIter begin, TIter end) |
void | read_relations (TSource &source) |
void | moving_in_buffer (size_t old_offset, size_t new_offset) |
void | possibly_purge_removed_members () |
std::vector< const osmium::Relation * > | get_incomplete_relations () const |
Private Types | |
enum | { initial_output_buffer_size = 1024UL * 1024UL } |
enum | { max_buffer_size_for_flush = 100UL * 1024UL } |
using | collector_type = osmium::relations::Collector< MultipolygonCollector< TAssembler >, false, true, false > |
using | assembler_config_type = typename TAssembler::config_type |
Private Member Functions | |
void | flush_output_buffer () |
void | possibly_flush_output_buffer () |
Private Attributes | |
const assembler_config_type | m_assembler_config |
osmium::memory::Buffer | m_output_buffer |
area_stats | m_stats |
Additional Inherited Members | |
Protected Member Functions inherited from osmium::relations::Collector< MultipolygonCollector< TAssembler >, false, true, false > | |
std::vector< MemberMeta > & | member_meta (const item_type type) |
callback_func_type | callback () |
const std::vector< RelationMeta > & | relations () const |
bool | keep_relation (const osmium::Relation &) const |
bool | keep_member (const RelationMeta &, const osmium::RelationMember &) const |
void | node_not_in_any_relation (const osmium::Node &) |
void | way_not_in_any_relation (const osmium::Way &) |
void | relation_not_in_any_relation (const osmium::Relation &) |
void | flush () |
const osmium::Relation & | get_relation (size_t offset) const |
const osmium::Relation & | get_relation (const RelationMeta &relation_meta) const |
const osmium::Relation & | get_relation (const MemberMeta &member_meta) const |
osmium::OSMObject & | get_member (size_t offset) const |
This class collects all data needed for creating areas from relations tagged with type=multipolygon or type=boundary. Most of its functionality is derived from the parent class osmium::relations::Collector.
The actual assembling of the areas is done by the assembler class given as template argument.
TAssembler | Multipolygon Assembler class. |
|
private |
|
private |
|
inlineexplicit |
|
inline |
|
inline |
|
inlineprivate |
|
inline |
Overwritten from the base class.
|
inline |
We are interested in all relations tagged with type=multipolygon or type=boundary.
Overwritten from the base class.
|
inlineprivate |
|
inline |
|
inlinenoexcept |
|
inline |
This is called when a way is not in any multipolygon relation.
Overwritten from the base class.
|
private |
|
private |
|
private |