geos::operation::overlayng::CoverageUnion Class Reference

`#include <CoverageUnion.h>`

## Static Public Member Functions

static std::unique_ptr< Geometry > | geomunion (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:

- Vector-clean - Line segments within the collection must either be identical or intersect only at endpoints.
- Non-overlapping - No two polygons may overlap. Equivalently, polygons must be interior-disjoint.

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

- i.e. they may contain coincident linework. Coincident line segments are dissolved by the union. Currently linear output is not merged (this may be added in a future release.)

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()

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

static

Unions a valid polygonal coverage or linear network.

Parameters

  coverage | a coverage of polygons or lines

Returns
  the union of the coverage

Exceptions

  util::TopologyException | in some cases if the coverage is invalid

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

- operation/overlayng/CoverageUnion.h