Libosmium
2.5.3
Fast and flexible C++ library for working with OpenStreetMap data
|
#include <assembler.hpp>
Classes | |
struct | MPFilter |
Public Types | |
typedef osmium::area::AssemblerConfig | config_type |
Public Member Functions | |
Assembler (const config_type &config) | |
~Assembler ()=default | |
void | operator() (const osmium::Way &way, osmium::memory::Buffer &out_buffer) |
void | operator() (const osmium::Relation &relation, const std::vector< size_t > &members, const osmium::memory::Buffer &in_buffer, osmium::memory::Buffer &out_buffer) |
Private Member Functions | |
bool | debug () const |
bool | has_same_location (const osmium::NodeRef &nr1, const osmium::NodeRef &nr2) |
void | add_tags_to_area (osmium::builder::AreaBuilder &builder, const osmium::Way &way) const |
void | add_common_tags (osmium::builder::TagListBuilder &tl_builder, std::set< const osmium::Way * > &ways) const |
void | add_tags_to_area (osmium::builder::AreaBuilder &builder, const osmium::Relation &relation) const |
bool | check_for_open_rings () |
bool | possibly_combine_rings_back (ProtoRing &ring) |
bool | possibly_combine_rings_front (ProtoRing &ring) |
void | split_off_subring (osmium::area::detail::ProtoRing &ring, osmium::area::detail::ProtoRing::segments_type::iterator it, osmium::area::detail::ProtoRing::segments_type::iterator it_begin, osmium::area::detail::ProtoRing::segments_type::iterator it_end) |
bool | has_closed_subring_back (ProtoRing &ring, const NodeRef &nr) |
bool | has_closed_subring_front (ProtoRing &ring, const NodeRef &nr) |
bool | check_for_closed_subring (ProtoRing &ring) |
void | combine_rings_front (const osmium::area::detail::NodeRefSegment &segment, ProtoRing &ring) |
void | combine_rings_back (const osmium::area::detail::NodeRefSegment &segment, ProtoRing &ring) |
void | add_rings_to_area (osmium::builder::AreaBuilder &builder) const |
bool | add_to_existing_ring (osmium::area::detail::NodeRefSegment segment) |
void | check_inner_outer (ProtoRing &ring) |
void | check_inner_outer_roles () |
bool | create_rings () |
Static Private Member Functions | |
static MPFilter & | filter () |
Private Attributes | |
const AssemblerConfig | m_config |
osmium::area::detail::SegmentList | m_segment_list |
std::list< ProtoRing > | m_rings |
std::vector< ProtoRing * > | m_outer_rings |
std::vector< ProtoRing * > | m_inner_rings |
int | m_inner_outer_mismatches { 0 } |
Assembles area objects from multipolygon relations and their members. This is called by the MultipolygonCollector object after all members have been collected.
|
inlineexplicit |
|
default |
|
inlineprivate |
|
inlineprivate |
Append each outer ring together with its inner rings to the area in the buffer.
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
Go through all the rings and find rings that are not closed. Problems are reported through the problem reporter.
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
Create rings from segments.
|
inlineprivate |
|
inlinestaticprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
Checks whether the given NodeRefs have the same location. Uses the actual location for the test, not the id. If both have the same location, but not the same id, a problem point will be added to the list of problem points.
|
inline |
Assemble an area from the given way. The resulting area is put into the out_buffer.
|
inline |
Assemble an area from the given relation and its members. All members are to be found in the in_buffer at the offsets given by the members parameter. The resulting area is put into the out_buffer.
|
inlineprivate |
Check whether there are any rings that can be combined with the given ring to one larger ring by appending the other ring to the end of this ring. If the rings can be combined they are and the function returns true.
|
inlineprivate |
Check whether there are any rings that can be combined with the given ring to one larger ring by prepending the other ring to the start of this ring. If the rings can be combined they are and the function returns true.
|
inlineprivate |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |