Class BufferDistanceValidator
java.lang.Object
org.locationtech.jts.operation.buffer.validate.BufferDistanceValidator
Validates that a given buffer curve lies an appropriate distance
from the input generating it.
Useful only for round buffers (cap and join).
Can be used for either positive or negative distances.
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.)
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate double
private String
private Geometry
private Coordinate
private Geometry
private boolean
private static final double
Maximum allowable fraction of buffer distance the actual distance can differ by.private double
private double
private double
private double
private Geometry
private static boolean
-
Constructor Summary
ConstructorsConstructorDescriptionBufferDistanceValidator
(Geometry input, double bufDistance, Geometry result) -
Method Summary
Modifier and TypeMethodDescriptionprivate void
checkMaximumDistance
(Geometry input, Geometry bufCurve, double maxDist) Checks that the furthest distance from the buffer curve to the input is less than the given maximum distance.private void
checkMinimumDistance
(Geometry g1, Geometry g2, double minDist) Checks that two geometries are at least a minimum distance apart.private void
private void
Gets a geometry which indicates the location and nature of a validation failure.private Geometry
boolean
isValid()
-
Field Details
-
VERBOSE
private static boolean VERBOSE -
MAX_DISTANCE_DIFF_FRAC
private static final double MAX_DISTANCE_DIFF_FRACMaximum allowable fraction of buffer distance the actual distance can differ by. 1% sometimes causes an error - 1.2% should be safe.- See Also:
-
input
-
bufDistance
private double bufDistance -
result
-
minValidDistance
private double minValidDistance -
maxValidDistance
private double maxValidDistance -
minDistanceFound
private double minDistanceFound -
maxDistanceFound
private double maxDistanceFound -
isValid
private boolean isValid -
errMsg
-
errorLocation
-
errorIndicator
-
-
Constructor Details
-
BufferDistanceValidator
-
-
Method Details
-
isValid
public boolean isValid() -
getErrorMessage
-
getErrorLocation
-
getErrorIndicator
Gets a geometry which indicates the location and nature of a validation failure.The indicator is a line segment showing the location and size of the distance discrepancy.
- Returns:
- a geometric error indicator or null if no error was found
-
checkPositiveValid
private void checkPositiveValid() -
checkNegativeValid
private void checkNegativeValid() -
getPolygonLines
-
checkMinimumDistance
Checks that two geometries are at least a minimum distance apart.- Parameters:
g1
- a geometryg2
- a geometryminDist
- the minimum distance the geometries should be separated by
-
checkMaximumDistance
Checks that the furthest distance from the buffer curve to the input is less than the given maximum distance. This uses the Oriented Hausdorff distance metric. It corresponds to finding the point on the buffer curve which is furthest from some point on the input.- Parameters:
input
- a geometrybufCurve
- a geometrymaxDist
- the maximum distance that a buffer result can be from the input
-