GEOS
3.14.0dev
|
#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 |
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.
|
static |
Unions a valid polygonal coverage or linear network.
coverage | a coverage of polygons or lines |
util::TopologyException | in some cases if the coverage is invalid |