Package org.locationtech.jts.precision
Class GeometryPrecisionReducer
java.lang.Object
org.locationtech.jts.precision.GeometryPrecisionReducer
Reduces the precision of a
Geometry
according to the supplied PrecisionModel
,
ensuring that the result is topologically valid.- Version:
- 1.12
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate boolean
private boolean
private boolean
private PrecisionModel
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate Geometry
changePM
(Geometry geom, PrecisionModel newPM) Duplicates a geometry to one that uses a different PrecisionModel, without changing any coordinate values.private GeometryEditor
createEditor
(GeometryFactory geomFactory, PrecisionModel newPM) private GeometryFactory
createFactory
(GeometryFactory inputFactory, PrecisionModel pm) private Geometry
fixPolygonalTopology
(Geometry geom) static Geometry
reduce
(Geometry g, PrecisionModel precModel) Convenience method for doing precision reduction on a single geometry, with collapses removed and keeping the geometry precision model the same, and preserving polygonal topology.private Geometry
reducePointwise
(Geometry geom) static Geometry
reducePointwise
(Geometry g, PrecisionModel precModel) Convenience method for doing pointwise precision reduction on a single geometry, with collapses removed and keeping the geometry precision model the same, but NOT preserving valid polygonal topology.void
setChangePrecisionModel
(boolean changePrecisionModel) Sets whether thePrecisionModel
of the new reduced Geometry will be changed to be thePrecisionModel
supplied to specify the precision reduction.void
setPointwise
(boolean isPointwise) Sets whether the precision reduction will be done in pointwise fashion only.void
setRemoveCollapsedComponents
(boolean removeCollapsed) Sets whether the reduction will result in collapsed components being removed completely, or simply being collapsed to an (invalid) Geometry of the same type.
-
Field Details
-
targetPM
-
removeCollapsed
private boolean removeCollapsed -
changePrecisionModel
private boolean changePrecisionModel -
isPointwise
private boolean isPointwise
-
-
Constructor Details
-
GeometryPrecisionReducer
-
-
Method Details
-
reduce
Convenience method for doing precision reduction on a single geometry, with collapses removed and keeping the geometry precision model the same, and preserving polygonal topology.- Parameters:
g
- the geometry to reduceprecModel
- the precision model to use- Returns:
- the reduced geometry
-
reducePointwise
Convenience method for doing pointwise precision reduction on a single geometry, with collapses removed and keeping the geometry precision model the same, but NOT preserving valid polygonal topology.- Parameters:
g
- the geometry to reduceprecModel
- the precision model to use- Returns:
- the reduced geometry
-
setRemoveCollapsedComponents
public void setRemoveCollapsedComponents(boolean removeCollapsed) Sets whether the reduction will result in collapsed components being removed completely, or simply being collapsed to an (invalid) Geometry of the same type. The default is to remove collapsed components.- Parameters:
removeCollapsed
- iftrue
collapsed components will be removed
-
setChangePrecisionModel
public void setChangePrecisionModel(boolean changePrecisionModel) Sets whether thePrecisionModel
of the new reduced Geometry will be changed to be thePrecisionModel
supplied to specify the precision reduction.The default is to not change the precision model
- Parameters:
changePrecisionModel
- iftrue
the precision model of the created Geometry will be the the precisionModel supplied in the constructor.
-
setPointwise
public void setPointwise(boolean isPointwise) Sets whether the precision reduction will be done in pointwise fashion only. Pointwise precision reduction reduces the precision of the individual coordinates only, but does not attempt to recreate valid topology. This is only relevant for geometries containing polygonal components.- Parameters:
isPointwise
- if reduction should be done pointwise only
-
reduce
-
reducePointwise
-
fixPolygonalTopology
-
changePM
Duplicates a geometry to one that uses a different PrecisionModel, without changing any coordinate values.- Parameters:
geom
- the geometry to duplicatenewPM
- the precision model to use- Returns:
- the geometry value with a new precision model
-
createEditor
-
createFactory
-