17#include <geos/geom/LineSegment.h>
18#include <geos/geom/Geometry.h>
35 class GEOS_DLL CoverageUnion {
36 using Geometry = geos::geom::Geometry;
37 using GeometryFactory = geos::geom::GeometryFactory;
38 using Polygon = geos::geom::Polygon;
39 using LineString = geos::geom::LineString;
40 using LinearRing = geos::geom::LinearRing;
41 using LineSegment = geos::geom::LineSegment;
45 static std::unique_ptr<Geometry> Union(
const Geometry* geom);
48 CoverageUnion() =
default;
50 void extractRings(
const Polygon* geom);
51 void extractRings(
const Geometry* geom);
52 void extractSegments(
const LineString* geom);
55 std::unique_ptr<Geometry> polygonize(
const GeometryFactory* gf);
57 std::vector<const LinearRing*> rings;
59 LineSegment::UnorderedSet segments;
60 static constexpr double AREA_PCT_DIFF_TOL = 1e-6;
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition GeometryFactory.h:70
Definition LineString.h:66
Models an OGC SFS LinearRing. A LinearRing is a LineString which is both closed and simple.
Definition LinearRing.h:54
Represents a linear polygon, which may include holes.
Definition Polygon.h:61
Classes to perform efficient unioning of collections of geometries.
Definition namespaces.h:286
Provides classes for implementing operations on geometries.
Definition CleanCoverage.h:34
Basic namespace for all GEOS functionalities.
Definition geos.h:38