Libosmium  2.20.0
Fast and flexible C++ library for working with OpenStreetMap data
Public Member Functions | Private Attributes | List of all members
osmium::area::ProblemReporterStream Class Reference

#include <problem_reporter_stream.hpp>

Inheritance diagram for osmium::area::ProblemReporterStream:
Inheritance graph
[legend]
Collaboration diagram for osmium::area::ProblemReporterStream:
Collaboration graph
[legend]

Public Member Functions

 ProblemReporterStream (std::ostream &out)
 
void header (const char *msg)
 
void report_duplicate_node (osmium::object_id_type node_id1, osmium::object_id_type node_id2, osmium::Location location) override
 
void report_touching_ring (osmium::object_id_type node_id, osmium::Location location) override
 
void report_intersection (osmium::object_id_type way1_id, osmium::Location way1_seg_start, osmium::Location way1_seg_end, osmium::object_id_type way2_id, osmium::Location way2_seg_start, osmium::Location way2_seg_end, osmium::Location intersection) override
 
void report_duplicate_segment (const osmium::NodeRef &nr1, const osmium::NodeRef &nr2) override
 
void report_overlapping_segment (const osmium::NodeRef &nr1, const osmium::NodeRef &nr2) override
 
void report_ring_not_closed (const osmium::NodeRef &nr, const osmium::Way *way) override
 
void report_role_should_be_outer (osmium::object_id_type way_id, osmium::Location seg_start, osmium::Location seg_end) override
 
void report_role_should_be_inner (osmium::object_id_type way_id, osmium::Location seg_start, osmium::Location seg_end) override
 
void report_way_in_multiple_rings (const osmium::Way &way) override
 
void report_inner_with_same_tags (const osmium::Way &way) override
 
void report_invalid_location (osmium::object_id_type way_id, osmium::object_id_type node_id) override
 
void report_duplicate_way (const osmium::Way &way) override
 
- Public Member Functions inherited from osmium::area::ProblemReporter
 ProblemReporter ()=default
 
 ProblemReporter (const ProblemReporter &)=default
 
ProblemReporteroperator= (const ProblemReporter &)=default
 
 ProblemReporter (ProblemReporter &&) noexcept=default
 
ProblemReporteroperator= (ProblemReporter &&) noexcept=default
 
virtual ~ProblemReporter () noexcept=default
 
void set_object (osmium::item_type object_type, osmium::object_id_type object_id) noexcept
 
osmium::object_id_type object_id () const noexcept
 
void set_nodes (size_t nodes) noexcept
 
virtual void report_duplicate_node (osmium::object_id_type node_id1, osmium::object_id_type node_id2, osmium::Location location)
 
virtual void report_touching_ring (osmium::object_id_type node_id, osmium::Location location)
 
virtual void report_intersection (osmium::object_id_type way1_id, osmium::Location way1_seg_start, osmium::Location way1_seg_end, osmium::object_id_type way2_id, osmium::Location way2_seg_start, osmium::Location way2_seg_end, osmium::Location intersection)
 
virtual void report_duplicate_segment (const osmium::NodeRef &nr1, const osmium::NodeRef &nr2)
 
virtual void report_overlapping_segment (const osmium::NodeRef &nr1, const osmium::NodeRef &nr2)
 
virtual void report_ring_not_closed (const osmium::NodeRef &nr, const osmium::Way *way)
 
virtual void report_role_should_be_outer (osmium::object_id_type way_id, osmium::Location seg_start, osmium::Location seg_end)
 
virtual void report_role_should_be_inner (osmium::object_id_type way_id, osmium::Location seg_start, osmium::Location seg_end)
 
virtual void report_way_in_multiple_rings (const osmium::Way &way)
 
virtual void report_inner_with_same_tags (const osmium::Way &way)
 
virtual void report_invalid_location (osmium::object_id_type way_id, osmium::object_id_type node_id)
 
virtual void report_duplicate_way (const osmium::Way &way)
 
virtual void report_way (const osmium::Way &way)
 

Private Attributes

std::ostream * m_out
 

Additional Inherited Members

- Protected Attributes inherited from osmium::area::ProblemReporter
osmium::item_type m_object_type = osmium::item_type::undefined
 
osmium::object_id_type m_object_id = 0
 
size_t m_nodes = 0
 

Constructor & Destructor Documentation

◆ ProblemReporterStream()

osmium::area::ProblemReporterStream::ProblemReporterStream ( std::ostream &  out)
inlineexplicit

Member Function Documentation

◆ header()

void osmium::area::ProblemReporterStream::header ( const char *  msg)
inline

◆ report_duplicate_node()

void osmium::area::ProblemReporterStream::report_duplicate_node ( osmium::object_id_type  node_id1,
osmium::object_id_type  node_id2,
osmium::Location  location 
)
inlineoverridevirtual

Report a duplicate node, ie. two nodes with the same location.

Parameters
node_id1ID of the first node.
node_id2ID of the second node.
locationLocation of both nodes.

Reimplemented from osmium::area::ProblemReporter.

◆ report_duplicate_segment()

void osmium::area::ProblemReporterStream::report_duplicate_segment ( const osmium::NodeRef nr1,
const osmium::NodeRef nr2 
)
inlineoverridevirtual

Report a duplicate segments. Two or more segments are directly on top of each other. This can be a problem, if there is a spike for instance, or it could be okay, if there are touching inner rings.

Parameters
nr1NodeRef of one end of the segment.
nr2NodeRef of the other end of the segment.

Reimplemented from osmium::area::ProblemReporter.

◆ report_duplicate_way()

void osmium::area::ProblemReporterStream::report_duplicate_way ( const osmium::Way way)
inlineoverridevirtual

Report a way that is more than once in a relation.

Parameters
wayThe way

Reimplemented from osmium::area::ProblemReporter.

◆ report_inner_with_same_tags()

void osmium::area::ProblemReporterStream::report_inner_with_same_tags ( const osmium::Way way)
inlineoverridevirtual

Report a way with role inner that has the same tags as the relation or outer ways.

Parameters
wayThe way.

Reimplemented from osmium::area::ProblemReporter.

◆ report_intersection()

void osmium::area::ProblemReporterStream::report_intersection ( osmium::object_id_type  way1_id,
osmium::Location  way1_seg_start,
osmium::Location  way1_seg_end,
osmium::object_id_type  way2_id,
osmium::Location  way2_seg_start,
osmium::Location  way2_seg_end,
osmium::Location  intersection 
)
inlineoverridevirtual

Report an intersection between two segments.

Parameters
way1_idID of the first involved way.
way1_seg_startLocation where the segment of the first way with the intersection starts
way1_seg_endLocation where the segment of the first way with the intersection ends
way2_idID of the second involved way.
way2_seg_startLocation where the segment of the second way with the intersection starts
way2_seg_endLocation where the segment of the second way with the intersection ends
intersectionLocation of the intersection. This might be slightly off the correct location due to rounding.

Reimplemented from osmium::area::ProblemReporter.

◆ report_invalid_location()

void osmium::area::ProblemReporterStream::report_invalid_location ( osmium::object_id_type  way_id,
osmium::object_id_type  node_id 
)
inlineoverridevirtual

Report an invalid location in a way.

Parameters
way_idID of the way the node is in.
node_idID of the node with the invalid location.

Reimplemented from osmium::area::ProblemReporter.

◆ report_overlapping_segment()

void osmium::area::ProblemReporterStream::report_overlapping_segment ( const osmium::NodeRef nr1,
const osmium::NodeRef nr2 
)
inlineoverridevirtual

Report a duplicate segments. Two or more segments are directly on top of each other. This can be a problem, if there is a spike for instance, or it could be okay, if there are touching inner rings.

Parameters
nr1NodeRef of one end of the segment.
nr2NodeRef of the other end of the segment.

Reimplemented from osmium::area::ProblemReporter.

◆ report_ring_not_closed()

void osmium::area::ProblemReporterStream::report_ring_not_closed ( const osmium::NodeRef nr,
const osmium::Way way 
)
inlineoverridevirtual

Report an open ring.

Parameters
nrNodeRef of one end of the ring.
wayOptional pointer to way the end node is in.

Reimplemented from osmium::area::ProblemReporter.

◆ report_role_should_be_inner()

void osmium::area::ProblemReporterStream::report_role_should_be_inner ( osmium::object_id_type  way_id,
osmium::Location  seg_start,
osmium::Location  seg_end 
)
inlineoverridevirtual

Report a segment that should have role "inner", but has a different role.

Parameters
way_idID of the way this segment is in.
seg_startStart of the segment with the wrong role.
seg_endEnd of the segment with the wrong role.

Reimplemented from osmium::area::ProblemReporter.

◆ report_role_should_be_outer()

void osmium::area::ProblemReporterStream::report_role_should_be_outer ( osmium::object_id_type  way_id,
osmium::Location  seg_start,
osmium::Location  seg_end 
)
inlineoverridevirtual

Report a segment that should have role "outer", but has a different role.

Parameters
way_idID of the way this segment is in.
seg_startStart of the segment with the wrong role.
seg_endEnd of the segment with the wrong role.

Reimplemented from osmium::area::ProblemReporter.

◆ report_touching_ring()

void osmium::area::ProblemReporterStream::report_touching_ring ( osmium::object_id_type  node_id,
osmium::Location  location 
)
inlineoverridevirtual

Report a node/location where rings touch. This is often wrong, but not necessarily so.

Parameters
node_idID of the node.
locationLocation of the node.

Reimplemented from osmium::area::ProblemReporter.

◆ report_way_in_multiple_rings()

void osmium::area::ProblemReporterStream::report_way_in_multiple_rings ( const osmium::Way way)
inlineoverridevirtual

Report a way that is in multiple rings.

Parameters
wayThe way.

Reimplemented from osmium::area::ProblemReporter.

Member Data Documentation

◆ m_out

std::ostream* osmium::area::ProblemReporterStream::m_out
private

The documentation for this class was generated from the following file: