Class IsValidOp
- java.lang.Object
-
- org.locationtech.jts.operation.valid.IsValidOp
-
public class IsValidOp extends java.lang.Object
Implements the algorithms required to compute theisValid()
method forGeometry
s. See the documentation for the various geometry types for a specification of validity.- Version:
- 1.7
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description TopologyValidationError
getValidationError()
Computes the validity of the geometry, and if not valid returns the validation error for the geometry, or null if the geometry is valid.boolean
isValid()
Tests the validity of the input geometry.static boolean
isValid(Coordinate coord)
Checks whether a coordinate is valid for processing.static boolean
isValid(Geometry geom)
Tests whether aGeometry
is valid.void
setSelfTouchingRingFormingHoleValid(boolean isValid)
Sets whether polygons using Self-Touching Rings to form holes are reported as valid.
-
-
-
Constructor Detail
-
IsValidOp
public IsValidOp(Geometry inputGeometry)
Creates a new validator for a geometry.- Parameters:
inputGeometry
- the geometry to validate
-
-
Method Detail
-
isValid
public static boolean isValid(Geometry geom)
Tests whether aGeometry
is valid.- Parameters:
geom
- the Geometry to test- Returns:
- true if the geometry is valid
-
isValid
public static boolean isValid(Coordinate coord)
Checks whether a coordinate is valid for processing. Coordinates are valid if their x and y ordinates are in the range of the floating point representation.- Parameters:
coord
- the coordinate to validate- Returns:
true
if the coordinate is valid
-
setSelfTouchingRingFormingHoleValid
public void setSelfTouchingRingFormingHoleValid(boolean isValid)
Sets whether polygons using Self-Touching Rings to form holes are reported as valid. If this flag is set, the following Self-Touching conditions are treated as being valid:- inverted shell - the shell ring self-touches to create a hole touching the shell
- exverted hole - a hole ring self-touches to create two holes touching at a point
The default (following the OGC SFS standard) is that this condition is not valid (
false
).Self-Touching Rings which disconnect the the polygon interior are still considered to be invalid (these are invalid under the SFS, and many other spatial models as well). This includes:
- exverted ("bow-tie") shells which self-touch at a single point
- inverted shells with the inversion touching the shell at another point
- exverted holes with exversion touching the hole at another point
- inverted ("C-shaped") holes which self-touch at a single point causing an island to be formed
- inverted shells or exverted holes which form part of a chain of touching rings (which disconnect the interior)
- Parameters:
isValid
- states whether geometry with this condition is valid
-
isValid
public boolean isValid()
Tests the validity of the input geometry.- Returns:
- true if the geometry is valid
-
getValidationError
public TopologyValidationError getValidationError()
Computes the validity of the geometry, and if not valid returns the validation error for the geometry, or null if the geometry is valid.- Returns:
- the validation error, if the geometry is invalid or null if the geometry is valid
-
-