|
20 | 20 |
|
21 | 21 | /** |
22 | 22 | * Computes the Euclidean distance (L2 metric) from a {@link Coordinate} to a {@link Geometry}. |
23 | | - * Also computes two points on the geometry which are separated by the distance found. |
| 23 | + * Also computes a point on the geometry which has the given distance to the coordinate. |
24 | 24 | */ |
25 | 25 | public class DistanceToPoint |
26 | 26 | { |
27 | 27 |
|
28 | 28 | public DistanceToPoint() { |
29 | 29 | } |
30 | 30 |
|
31 | | - public static void computeDistance(Geometry geom, Coordinate pt, PointPairDistance ptDist) |
| 31 | + public static void computeDistance(Geometry geom, Coordinate pt, PointPairDistance geomPtDist) |
32 | 32 | { |
33 | 33 | if (geom instanceof LineString) { |
34 | | - computeDistance((LineString) geom, pt, ptDist); |
| 34 | + computeDistance((LineString) geom, pt, geomPtDist); |
35 | 35 | } |
36 | 36 | else if (geom instanceof Polygon) { |
37 | | - computeDistance((Polygon) geom, pt, ptDist); |
| 37 | + computeDistance((Polygon) geom, pt, geomPtDist); |
38 | 38 | } |
39 | 39 | else if (geom instanceof GeometryCollection) { |
40 | 40 | GeometryCollection gc = (GeometryCollection) geom; |
41 | 41 | for (int i = 0; i < gc.getNumGeometries(); i++) { |
42 | 42 | Geometry g = gc.getGeometryN(i); |
43 | | - computeDistance(g, pt, ptDist); |
| 43 | + computeDistance(g, pt, geomPtDist); |
44 | 44 | } |
45 | 45 | } |
46 | 46 | else { // assume geom is Point |
47 | | - ptDist.setMinimum(geom.getCoordinate(), pt); |
| 47 | + geomPtDist.setMinimum(geom.getCoordinate(), pt); |
48 | 48 | } |
49 | 49 | } |
50 | 50 |
|
51 | | - public static void computeDistance(LineString line, Coordinate pt, PointPairDistance ptDist) |
| 51 | + public static void computeDistance(LineString line, Coordinate pt, PointPairDistance geomPtDist) |
52 | 52 | { |
53 | 53 | LineSegment tempSegment = new LineSegment(); |
54 | 54 | Coordinate[] coords = line.getCoordinates(); |
55 | 55 | for (int i = 0; i < coords.length - 1; i++) { |
56 | 56 | tempSegment.setCoordinates(coords[i], coords[i + 1]); |
57 | 57 | // this is somewhat inefficient - could do better |
58 | 58 | Coordinate closestPt = tempSegment.closestPoint(pt); |
59 | | - ptDist.setMinimum(closestPt, pt); |
| 59 | + geomPtDist.setMinimum(closestPt, pt); |
60 | 60 | } |
61 | 61 | } |
62 | 62 |
|
63 | | - public static void computeDistance(LineSegment segment, Coordinate pt, PointPairDistance ptDist) |
| 63 | + public static void computeDistance(LineSegment segment, Coordinate pt, PointPairDistance geomPtDist) |
64 | 64 | { |
65 | 65 | Coordinate closestPt = segment.closestPoint(pt); |
66 | | - ptDist.setMinimum(closestPt, pt); |
| 66 | + geomPtDist.setMinimum(closestPt, pt); |
67 | 67 | } |
68 | 68 |
|
69 | | - public static void computeDistance(Polygon poly, Coordinate pt, PointPairDistance ptDist) |
| 69 | + public static void computeDistance(Polygon poly, Coordinate pt, PointPairDistance geomPtDist) |
70 | 70 | { |
71 | | - computeDistance(poly.getExteriorRing(), pt, ptDist); |
| 71 | + computeDistance(poly.getExteriorRing(), pt, geomPtDist); |
72 | 72 | for (int i = 0; i < poly.getNumInteriorRing(); i++) { |
73 | | - computeDistance(poly.getInteriorRingN(i), pt, ptDist); |
| 73 | + computeDistance(poly.getInteriorRingN(i), pt, geomPtDist); |
74 | 74 | } |
75 | 75 | } |
76 | 76 | } |
0 commit comments