|
18 | 18 | import org.locationtech.jts.geom.LineString; |
19 | 19 | import org.locationtech.jts.operation.distance.DistanceOp; |
20 | 20 | import org.locationtech.jts.operation.distance.IndexedFacetDistance; |
| 21 | +import org.locationtech.jtstest.geomfunction.Metadata; |
21 | 22 |
|
22 | 23 | public class DistanceFunctions { |
23 | 24 | public static double distance(Geometry a, Geometry b) { |
@@ -46,44 +47,41 @@ public static Geometry frechetDistanceLine(Geometry a, Geometry b) |
46 | 47 |
|
47 | 48 | public static double hausdorffDistance(Geometry a, Geometry b) |
48 | 49 | { |
49 | | - DiscreteHausdorffDistance dist = new DiscreteHausdorffDistance(a, b); |
50 | | - return dist.distance(); |
| 50 | + return DiscreteHausdorffDistance.distance(a, b); |
51 | 51 | } |
52 | 52 |
|
| 53 | + @Metadata(description="Hausdorff distance between A and B") |
53 | 54 | public static Geometry hausdorffDistanceLine(Geometry a, Geometry b) |
54 | 55 | { |
55 | | - DiscreteHausdorffDistance dist = new DiscreteHausdorffDistance(a, b); |
56 | | - dist.distance(); |
57 | | - return a.getFactory().createLineString(dist.getCoordinates()); |
| 56 | + return DiscreteHausdorffDistance.distanceLine(a, b); |
58 | 57 | } |
59 | 58 |
|
60 | | - public static Geometry hausdorffDistanceLineDensified(Geometry a, Geometry b, double frac) |
| 59 | + @Metadata(description="Hausdorff distance between A and B, densified") |
| 60 | + public static Geometry hausdorffDistanceLineDensify(Geometry a, Geometry b, |
| 61 | + @Metadata(title="Densify fraction") |
| 62 | + double frac) |
61 | 63 | { |
62 | | - DiscreteHausdorffDistance dist = new DiscreteHausdorffDistance(a, b); |
63 | | - dist.setDensifyFraction(frac); |
64 | | - dist.distance(); |
65 | | - return a.getFactory().createLineString(dist.getCoordinates()); |
| 64 | + return DiscreteHausdorffDistance.distanceLine(a, b, frac); |
66 | 65 | } |
67 | 66 |
|
| 67 | + @Metadata(description="Oriented Hausdorff distance from A to B") |
68 | 68 | public static Geometry orientedHausdorffDistanceLine(Geometry a, Geometry b) |
69 | 69 | { |
70 | | - DiscreteHausdorffDistance dist = new DiscreteHausdorffDistance(a, b); |
71 | | - dist.orientedDistance(); |
72 | | - return a.getFactory().createLineString(dist.getCoordinates()); |
| 70 | + return DiscreteHausdorffDistance.orientedDistanceLine(a, b); |
73 | 71 | } |
74 | 72 |
|
| 73 | + @Metadata(description="Oriented Hausdorff distance from A to B") |
75 | 74 | public static double orientedHausdorffDistance(Geometry a, Geometry b) |
76 | 75 | { |
77 | | - DiscreteHausdorffDistance dist = new DiscreteHausdorffDistance(a, b); |
78 | | - return dist.orientedDistance(); |
| 76 | + return DiscreteHausdorffDistance.orientedDistance(a, b); |
79 | 77 | } |
80 | 78 |
|
81 | | - public static Geometry orientedHausdorffDistanceLineDensified(Geometry a, Geometry b, double frac) |
| 79 | + @Metadata(description="Oriented Hausdorff distance from A to B, densified") |
| 80 | + public static Geometry orientedHausdorffDistanceLineDensify(Geometry a, Geometry b, |
| 81 | + @Metadata(title="Densify fraction") |
| 82 | + double frac) |
82 | 83 | { |
83 | | - DiscreteHausdorffDistance dist = new DiscreteHausdorffDistance(a, b); |
84 | | - dist.setDensifyFraction(frac); |
85 | | - dist.orientedDistance(); |
86 | | - return a.getFactory().createLineString(dist.getCoordinates()); |
| 84 | + return DiscreteHausdorffDistance.orientedDistanceLine(a, b, frac); |
87 | 85 | } |
88 | 86 |
|
89 | 87 | public static double distanceIndexed(Geometry a, Geometry b) { |
|
0 commit comments