Libosmium
2.6.1
Fast and flexible C++ library for working with OpenStreetMap data
|
#include <problem_reporter.hpp>
Public Member Functions | |
ProblemReporter ()=default | |
virtual | ~ProblemReporter ()=default |
void | set_object (osmium::item_type object_type, osmium::object_id_type object_id) noexcept |
virtual void | report_duplicate_node (osmium::object_id_type node_id1, osmium::object_id_type node_id2, 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_ring_not_closed (osmium::Location end1, osmium::Location end2) |
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) |
Protected Attributes | |
osmium::item_type | m_object_type |
osmium::object_id_type | m_object_id |
When assembling a multipolygon/area from a multipolygon relation or a closed way several problems can be detected. This includes intersections between lines, wrong role attributes on relation members etc. These problems are reported by the area::Assembler class to the ProblemReporter class or one of its child classes.
This is the parent class which does nothing with the reports. Child classes are expected to implement different ways of reporting the problems.
|
default |
|
virtualdefault |
|
inlinevirtual |
Report a duplicate node, ie. two nodes with the same location.
node_id1 | ID of the first node. |
node_id2 | ID of the second node. |
location | Location of both nodes. |
Reimplemented in osmium::area::ProblemReporterOGR, osmium::area::ProblemReporterStream, and osmium::area::ProblemReporterException.
|
inlinevirtual |
Report an intersection between two segments.
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 in osmium::area::ProblemReporterOGR, osmium::area::ProblemReporterStream, and osmium::area::ProblemReporterException.
|
inlinevirtual |
Report an open ring.
Reimplemented in osmium::area::ProblemReporterOGR, osmium::area::ProblemReporterStream, and osmium::area::ProblemReporterException.
|
inlinevirtual |
Report a segment that should have role "inner", but has a different role.
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 in osmium::area::ProblemReporterOGR, osmium::area::ProblemReporterStream, and osmium::area::ProblemReporterException.
|
inlinevirtual |
Report a segment that should have role "outer", but has a different role.
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 in osmium::area::ProblemReporterOGR, osmium::area::ProblemReporterStream, and osmium::area::ProblemReporterException.
|
inlinenoexcept |
Set the object the next problem reports will be on.
object_type | The type of the object. |
object_id | The ID of the object. |
|
protected |
|
protected |