Class BufferResultValidator
- java.lang.Object
-
- org.locationtech.jts.operation.buffer.validate.BufferResultValidator
-
public class BufferResultValidator extends java.lang.ObjectValidates 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 doubledistanceprivate GeometryerrorIndicatorprivate CoordinateerrorLocationprivate java.lang.StringerrorMsgprivate Geometryinputprivate booleanisValidprivate static doubleMAX_ENV_DIFF_FRACMaximum allowable fraction of buffer distance the actual distance can differ by.private Geometryresultprivate static booleanVERBOSE
-
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 voidcheckArea()private voidcheckDistance()private voidcheckEnvelope()private voidcheckExpectedEmpty()private voidcheckPolygonal()GeometrygetErrorIndicator()Gets a geometry which indicates the location and nature of a validation failure.CoordinategetErrorLocation()java.lang.StringgetErrorMessage()booleanisValid()static booleanisValid(Geometry g, double distance, Geometry result)static java.lang.StringisValidMsg(Geometry g, double distance, Geometry result)Checks whether the geometry buffer is valid, and returns an error message if not.private voidreport(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()
-
-