GEOS
3.9.1dev
|
Simplifies a geometry, ensuring that the result is a valid geometry having the same dimension and number of components as the input. More...
#include <TopologyPreservingSimplifier.h>
Public Member Functions | |
TopologyPreservingSimplifier (const geom::Geometry *geom) | |
void | setDistanceTolerance (double tolerance) |
Sets the distance tolerance for the simplification. More... | |
std::unique_ptr< geom::Geometry > | getResultGeometry () |
Static Public Member Functions | |
static std::unique_ptr< geom::Geometry > | simplify (const geom::Geometry *geom, double tolerance) |
Private Attributes | |
const geom::Geometry * | inputGeom |
std::unique_ptr< TaggedLinesSimplifier > | lineSimplifier |
Simplifies a geometry, ensuring that the result is a valid geometry having the same dimension and number of components as the input.
The simplification uses a maximum distance difference algorithm similar to the one used in the Douglas-Peucker algorithm.
In particular, if the input is an areal geometry ( Polygon or MultiPolygon )
Definition at line 57 of file TopologyPreservingSimplifier.h.
geos::simplify::TopologyPreservingSimplifier::TopologyPreservingSimplifier | ( | const geom::Geometry * | geom | ) |
std::unique_ptr<geom::Geometry> geos::simplify::TopologyPreservingSimplifier::getResultGeometry | ( | ) |
void geos::simplify::TopologyPreservingSimplifier::setDistanceTolerance | ( | double | tolerance | ) |
Sets the distance tolerance for the simplification.
All vertices in the simplified geometry will be within this distance of the original geometry. The tolerance value must be non-negative. A tolerance value of zero is effectively a no-op.
tolerance | the approximation tolerance to use |
|
static |
|
private |
Definition at line 83 of file TopologyPreservingSimplifier.h.
|
private |
Definition at line 85 of file TopologyPreservingSimplifier.h.