|
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