Package org.locationtech.jts.simplify
Class TopologyPreservingSimplifier
java.lang.Object
org.locationtech.jts.simplify.TopologyPreservingSimplifier
Simplifies a geometry and ensures that
the result is a valid geometry having the
same dimension and number of components as the input,
and with the components having the same topological relationship.
If the input is a polygonal geometry
( Polygon
or MultiPolygon
):
- The result has the same number of shells and holes as the input, with the same topological structure
- The result rings touch at no more than the number of touching points in the input (although they may touch at fewer points). The key implication of this statement is that if the input is topologically valid, so is the simplified output.
For polygonal geometries and LinearRings the ring endpoint will be simplified. For LineStrings the endpoints will be unchanged.
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.
- Author:
- Martin Davis
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
setDistanceTolerance
(double distanceTolerance) Sets the distance tolerance for the simplification.static Geometry
-
Constructor Details
-
TopologyPreservingSimplifier
-
-
Method Details
-
simplify
-
setDistanceTolerance
public void setDistanceTolerance(double distanceTolerance) 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.- Parameters:
distanceTolerance
- the approximation tolerance to use
-
getResultGeometry
-