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

#include <problem_reporter_ogr.hpp>

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

Public Member Functions

 ProblemReporterOGR (gdalcpp::Dataset &dataset)
 
virtual ~ProblemReporterOGR ()=default
 
void report_duplicate_node (osmium::object_id_type node_id1, osmium::object_id_type node_id2, 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_ring_not_closed (osmium::Location end1, osmium::Location end2) 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
 
- Public Member Functions inherited from osmium::area::ProblemReporter
 ProblemReporter ()=default
 
virtual ~ProblemReporter ()=default
 
void set_object (osmium::item_type object_type, osmium::object_id_type object_id) noexcept
 

Private Member Functions

void write_point (const char *problem_type, osmium::object_id_type id1, osmium::object_id_type id2, osmium::Location location)
 
void write_line (const char *problem_type, osmium::object_id_type id1, osmium::object_id_type id2, osmium::Location loc1, osmium::Location loc2)
 

Private Attributes

osmium::geom::OGRFactory m_ogr_factory
 
gdalcpp::Layer m_layer_perror
 
gdalcpp::Layer m_layer_lerror
 

Additional Inherited Members

- Protected Attributes inherited from osmium::area::ProblemReporter
osmium::item_type m_object_type
 
osmium::object_id_type m_object_id
 

Detailed Description

Report problems when assembling areas by adding them to layers in an OGR datasource.

Constructor & Destructor Documentation

osmium::area::ProblemReporterOGR::ProblemReporterOGR ( gdalcpp::Dataset &  dataset)
inlineexplicit
virtual osmium::area::ProblemReporterOGR::~ProblemReporterOGR ( )
virtualdefault

Member Function Documentation

void osmium::area::ProblemReporterOGR::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.

void osmium::area::ProblemReporterOGR::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.

void osmium::area::ProblemReporterOGR::report_ring_not_closed ( osmium::Location  end1,
osmium::Location  end2 
)
inlineoverridevirtual

Report an open ring.

Parameters
end1Location of the first open end.
end2Location of the second open end.

Reimplemented from osmium::area::ProblemReporter.

void osmium::area::ProblemReporterOGR::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.

void osmium::area::ProblemReporterOGR::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.

void osmium::area::ProblemReporterOGR::write_line ( const char *  problem_type,
osmium::object_id_type  id1,
osmium::object_id_type  id2,
osmium::Location  loc1,
osmium::Location  loc2 
)
inlineprivate
void osmium::area::ProblemReporterOGR::write_point ( const char *  problem_type,
osmium::object_id_type  id1,
osmium::object_id_type  id2,
osmium::Location  location 
)
inlineprivate

Member Data Documentation

gdalcpp::Layer osmium::area::ProblemReporterOGR::m_layer_lerror
private
gdalcpp::Layer osmium::area::ProblemReporterOGR::m_layer_perror
private
osmium::geom::OGRFactory osmium::area::ProblemReporterOGR::m_ogr_factory
private

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