public class DiscreteHausdorffDistance extends Object
Geometry
.
The algorithm computes the Hausdorff distance restricted to discrete points
for one of the geometries.
The points can be either the vertices of the geometries (the default),
or the geometries with line segments densified by a given fraction.
Also determines two points of the Geometries which are separated by the computed distance.
This algorithm is an approximation to the standard Hausdorff distance. Specifically,
for all geometries a, b: DHD(a, b) <= HD(a, b)The approximation can be made as close as needed by densifying the input geometries. In the limit, this value will approach the true Hausdorff distance:
DHD(A, B, densifyFactor) -> HD(A, B) as densifyFactor -> 0.0The default approximation is exact or close enough for a large subset of useful cases. Examples of these are:
A = LINESTRING (0 0, 100 0, 10 100, 10 100) B = LINESTRING (0 100, 0 10, 80 10) DHD(A, B) = 22.360679774997898 HD(A, B) ~= 47.8
Modifier and Type | Class and Description |
---|---|
static class |
DiscreteHausdorffDistance.MaxDensifiedByFractionDistanceFilter |
static class |
DiscreteHausdorffDistance.MaxPointDistanceFilter |
Constructor and Description |
---|
DiscreteHausdorffDistance(Geometry g0,
Geometry g1) |
Modifier and Type | Method and Description |
---|---|
double |
distance() |
static double |
distance(Geometry g0,
Geometry g1) |
static double |
distance(Geometry g0,
Geometry g1,
double densifyFrac) |
Coordinate[] |
getCoordinates() |
double |
orientedDistance() |
void |
setDensifyFraction(double densifyFrac)
Sets the fraction by which to densify each segment.
|
public void setDensifyFraction(double densifyFrac)
densifyFrac
- public double distance()
public double orientedDistance()
public Coordinate[] getCoordinates()
Copyright © 2022. All rights reserved.