GEOS  3.14.0dev
Static Public Member Functions | Static Public Attributes | List of all members
geos::operation::overlayng::CoverageUnion Class Reference

#include <CoverageUnion.h>

Static Public Member Functions

static std::unique_ptr< Geometrygeomunion (const Geometry *coverage)
 

Static Public Attributes

static constexpr double AREA_PCT_DIFF_TOL = 1e-6
 

Detailed Description

Unions a valid coverage of polygons or lines in an efficient way.

A valid polygonal coverage is a collection of geom::Polygon which satisfy the following conditions:

A valid linear coverage is a collection of geom::LineString which satisfies the Vector-clean condition. Note that this does not require the LineStrings to be fully noded

Currently no checking is done to determine whether the input is a valid coverage. This is because coverage validation involves segment intersection detection, which is much more expensive than the union phase. If the input is not a valid coverage then in some cases this will be detected during processing and a util::TopologyException is thrown. Otherwise, the computation will produce output, but it will be invalid.

Unioning a valid coverage implies that no new vertices are created. This means that a precision model does not need to be specified. The precision of the vertices in the output geometry is not changed.

Author
Martin Davis
See also
noding::SegmentExtractingNoder

Member Function Documentation

◆ geomunion()

static std::unique_ptr<Geometry> geos::operation::overlayng::CoverageUnion::geomunion ( const Geometry coverage)
static

Unions a valid polygonal coverage or linear network.

Parameters
coveragea coverage of polygons or lines
Returns
the union of the coverage
Exceptions
util::TopologyExceptionin some cases if the coverage is invalid

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