public class TopologyPreservingSimplifier
extends java.lang.Object
If the input is a polygonal geometry
( Polygon
or MultiPolygon
):
For all geometry types, the result will contain enough vertices to ensure validity. For polygons and closed linear geometries, the result will have at least 4 vertices; for open linestrings the result will have at least 2 vertices.
All geometry types are handled. Empty and point geometries are returned unchanged. Empty geometry components are deleted.
The simplification uses a maximum-distance difference algorithm similar to the Douglas-Peucker algorithm.
DouglasPeuckerSimplifier
Modifier and Type | Class and Description |
---|---|
(package private) static class |
TopologyPreservingSimplifier.LineStringMapBuilderFilter
A filter to add linear geometries to the linestring map
with the appropriate minimum size constraint.
|
(package private) static class |
TopologyPreservingSimplifier.LineStringTransformer |
Modifier and Type | Field and Description |
---|---|
private Geometry |
inputGeom |
private TaggedLinesSimplifier |
lineSimplifier |
private java.util.Map |
linestringMap |
Constructor and Description |
---|
TopologyPreservingSimplifier(Geometry inputGeom) |
Modifier and Type | Method and Description |
---|---|
Geometry |
getResultGeometry() |
void |
setDistanceTolerance(double distanceTolerance)
Sets the distance tolerance for the simplification.
|
static Geometry |
simplify(Geometry geom,
double distanceTolerance) |
private Geometry inputGeom
private TaggedLinesSimplifier lineSimplifier
private java.util.Map linestringMap
public TopologyPreservingSimplifier(Geometry inputGeom)
public void setDistanceTolerance(double distanceTolerance)
distanceTolerance
- the approximation tolerance to usepublic Geometry getResultGeometry()