Class BufferResultValidator
- java.lang.Object
-
- org.locationtech.jts.operation.buffer.validate.BufferResultValidator
-
public class BufferResultValidator extends java.lang.Object
Validates that the result of a buffer operation is geometrically correct, within a computed tolerance.This is a heuristic test, and may return false positive results (I.e. it may fail to detect an invalid result.) It should never return a false negative result, however (I.e. it should never report a valid result as invalid.)
This test may be (much) more expensive than the original buffer computation.
-
-
Field Summary
Fields Modifier and Type Field Description private double
distance
private Geometry
errorIndicator
private Coordinate
errorLocation
private java.lang.String
errorMsg
private Geometry
input
private boolean
isValid
private static double
MAX_ENV_DIFF_FRAC
Maximum allowable fraction of buffer distance the actual distance can differ by.private Geometry
result
private static boolean
VERBOSE
-
Constructor Summary
Constructors Constructor Description BufferResultValidator(Geometry input, double distance, Geometry result)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
checkArea()
private void
checkDistance()
private void
checkEnvelope()
private void
checkExpectedEmpty()
private void
checkPolygonal()
Geometry
getErrorIndicator()
Gets a geometry which indicates the location and nature of a validation failure.Coordinate
getErrorLocation()
java.lang.String
getErrorMessage()
boolean
isValid()
static boolean
isValid(Geometry g, double distance, Geometry result)
static java.lang.String
isValidMsg(Geometry g, double distance, Geometry result)
Checks whether the geometry buffer is valid, and returns an error message if not.private void
report(java.lang.String checkName)
-
-
-
Field Detail
-
VERBOSE
private static boolean VERBOSE
-
MAX_ENV_DIFF_FRAC
private static final double MAX_ENV_DIFF_FRAC
Maximum allowable fraction of buffer distance the actual distance can differ by. 1% sometimes causes an error - 1.2% should be safe.- See Also:
- Constant Field Values
-
input
private Geometry input
-
distance
private double distance
-
result
private Geometry result
-
isValid
private boolean isValid
-
errorMsg
private java.lang.String errorMsg
-
errorLocation
private Coordinate errorLocation
-
errorIndicator
private Geometry errorIndicator
-
-
Method Detail
-
isValidMsg
public static java.lang.String isValidMsg(Geometry g, double distance, Geometry result)
Checks whether the geometry buffer is valid, and returns an error message if not.- Parameters:
g
-distance
-result
-- Returns:
- an appropriate error message or null if the buffer is valid
-
isValid
public boolean isValid()
-
getErrorMessage
public java.lang.String getErrorMessage()
-
getErrorLocation
public Coordinate getErrorLocation()
-
getErrorIndicator
public Geometry getErrorIndicator()
Gets a geometry which indicates the location and nature of a validation failure.If the failure is due to the buffer curve being too far or too close to the input, the indicator is a line segment showing the location and size of the discrepancy.
- Returns:
- a geometric error indicator or null if no error was found
-
report
private void report(java.lang.String checkName)
-
checkPolygonal
private void checkPolygonal()
-
checkExpectedEmpty
private void checkExpectedEmpty()
-
checkEnvelope
private void checkEnvelope()
-
checkArea
private void checkArea()
-
checkDistance
private void checkDistance()
-
-