## com.vividsolutions.jts.simplify
Class TopologyPreservingSimplifier

    java.lang.Object
      com.vividsolutions.jts.simplify.TopologyPreservingSimplifier

public class TopologyPreservingSimplifier
extends java.lang.Object

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` ):

- The result has the same number of shells and holes (rings) as the input, in the same order
- The result rings touch at no more than the number of touching point in the input (although they may touch at fewer points). (The key implication of this constraint is that the output will be topologically valid if the input was.)

Author:
  Martin Davis
See Also:
  `DouglasPeuckerSimplifier`

Constructor Summary
`TopologyPreservingSimplifier(Geometry inputGeom)`

Method Summary
`Geometry` `getResultGeometry()`
`void` `setDistanceTolerance(double distanceTolerance)` Sets the distance tolerance for the simplification.
`static Geometry` `simplify(Geometry geom, double distanceTolerance)`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### TopologyPreservingSimplifier

    public TopologyPreservingSimplifier(Geometry inputGeom)

Method Detail

### simplify

    public static Geometry simplify(Geometry geom,
                                    double distanceTolerance)

### 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

    public Geometry getResultGeometry()