Libosmium 2.22.0 Fast and flexible C++ library for working with OpenStreetMap data

Loading...
Searching...
No Matches
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:
[legend]
Collaboration diagram for osmium::area::ProblemReporterStream:
[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
ProblemReporter & | operator= (const ProblemReporter &)=default
| ProblemReporter (ProblemReporter &&) noexcept=default
ProblemReporter & | operator= (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_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 | ) |
| inline explicit

## 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 )
| inline override virtual

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

Parameters

  node_id1 | ID of the first node.
  node_id2 | ID of the second node.
  location | Location 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 )
| inline override virtual

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

  nr1 | NodeRef of one end of the segment.
  nr2 | NodeRef 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 | ) |
| inline override virtual

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

Parameters

  way | The way

Reimplemented from osmium::area::ProblemReporter.

## ◆ report_inner_with_same_tags()

void osmium::area::ProblemReporterStream::report_inner_with_same_tags | ( | const osmium::Way & | way | ) |
| inline override virtual

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

Parameters

  way | The 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 )
| inline override virtual

Report an intersection between two segments.

Parameters

  way1_id | ID of the first involved way.
  way1_seg_start | Location where the segment of the first way with the intersection starts
  way1_seg_end | Location where the segment of the first way with the intersection ends
  way2_id | ID of the second involved way.
  way2_seg_start | Location where the segment of the second way with the intersection starts
  way2_seg_end | Location where the segment of the second way with the intersection ends
  intersection | Location 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 )
| inline override virtual

Report an invalid location in a way.

Parameters

  way_id | ID of the way the node is in.
  node_id | ID 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 )
| inline override virtual

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

  nr1 | NodeRef of one end of the segment.
  nr2 | NodeRef 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 )
| inline override virtual

Report an open ring.

Parameters

  nr | NodeRef of one end of the ring.
  way | Optional 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 )
| inline override virtual

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

Parameters

  way_id | ID of the way this segment is in.
  seg_start | Start of the segment with the wrong role.
  seg_end | End 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 )
| inline override virtual

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

Parameters

  way_id | ID of the way this segment is in.
  seg_start | Start of the segment with the wrong role.
  seg_end | End 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 )
| inline override virtual

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

Parameters

  node_id | ID of the node.
  location | Location 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 | ) |
| inline override virtual

Report a way that is in multiple rings.

Parameters

  way | The 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:

- include/osmium/area/problem_reporter_stream.hpp