private void updatePts(Coordinate p, Coordinate seg0, Coordinate seg1) { minPts[0] = p; LineSegment seg = new LineSegment(seg0, seg1); minPts[1] = new Coordinate(seg.closestPoint(p)); }
public static void computeDistance(LineSegment segment, Coordinate pt, PointPairDistance ptDist) { Coordinate closestPt = segment.closestPoint(pt); ptDist.setMinimum(closestPt, pt); }
private void updateClearance(double candidateValue, Coordinate p, Coordinate seg0, Coordinate seg1) { if (candidateValue < minClearance) { minClearance = candidateValue; minClearancePts[0] = new Coordinate(p); LineSegment seg = new LineSegment(seg0, seg1); minClearancePts[1] = new Coordinate(seg.closestPoint(p)); } }
public static void computeDistance(LineSegment segment, Coordinate pt, PointPairDistance ptDist) { Coordinate closestPt = segment.closestPoint(pt); ptDist.setMinimum(closestPt, pt); }
double dist; Coordinate close00 = closestPoint(line.p0); minDistance = close00.distance(line.p0); closestPt[0] = close00; closestPt[1] = line.p0; Coordinate close01 = closestPoint(line.p1); dist = close01.distance(line.p1); if (dist < minDistance) { Coordinate close10 = line.closestPoint(p0); dist = close10.distance(p0); if (dist < minDistance) { Coordinate close11 = line.closestPoint(p1); dist = close11.distance(p1); if (dist < minDistance) {
public static void computeDistance(LineString line, Coordinate pt, PointPairDistance ptDist) { Coordinate[] coords = line.getCoordinates(); for (int i = 0; i < coords.length - 1; i++) { tempSegment.setCoordinates(coords[i], coords[i + 1]); // this is somewhat inefficient - could do better Coordinate closestPt = tempSegment.closestPoint(pt); ptDist.setMinimum(closestPt, pt); } }
public static void computeDistance(LineString line, Coordinate pt, PointPairDistance ptDist) { Coordinate[] coords = line.getCoordinates(); for (int i = 0; i < coords.length - 1; i++) { tempSegment.setCoordinates(coords[i], coords[i + 1]); // this is somewhat inefficient - could do better Coordinate closestPt = tempSegment.closestPoint(pt); ptDist.setMinimum(closestPt, pt); } }
private void computeMinDistanceLinePoint(LineString line,Point point, boolean flip) { Coordinate[] lineCoord = line.getCoordinates(); Coordinate coord = point.getCoordinate(); // brute force approach! for (int i = 0; i < lineCoord.length - 1; i++) { double dist = CGAlgorithms3D.distancePointSegment(coord, lineCoord[i], lineCoord[i + 1]); if (dist < minDistance) { LineSegment seg = new LineSegment(lineCoord[i], lineCoord[i + 1]); Coordinate segClosestPoint = seg.closestPoint(coord); updateDistance(dist, new GeometryLocation(line, i, segClosestPoint), new GeometryLocation(point, 0, coord), flip); } if (isDone) return; } }
private void computeMinDistance(LineString line, Point pt, GeometryLocation[] locGeom) { if (line.getEnvelopeInternal().distance(pt.getEnvelopeInternal()) > minDistance) return; Coordinate[] coord0 = line.getCoordinates(); Coordinate coord = pt.getCoordinate(); // brute force approach! for (int i = 0; i < coord0.length - 1; i++) { double dist = CGAlgorithms.distancePointLine( coord, coord0[i], coord0[i + 1] ); if (dist < minDistance) { minDistance = dist; LineSegment seg = new LineSegment(coord0[i], coord0[i + 1]); Coordinate segClosestPoint = seg.closestPoint(coord); locGeom[0] = new GeometryLocation(line, i, segClosestPoint); locGeom[1] = new GeometryLocation(pt, 0, coord); } if (minDistance <= terminateDistance) return; } }
private void updateClearance(double candidateValue, Coordinate p, Coordinate seg0, Coordinate seg1) { if (candidateValue < minClearance) { minClearance = candidateValue; minClearancePts[0] = new Coordinate(p); LineSegment seg = new LineSegment(seg0, seg1); minClearancePts[1] = new Coordinate(seg.closestPoint(p)); } }
public static void computeDistance(LineSegment segment, Coordinate pt, PointPairDistance ptDist) { Coordinate closestPt = segment.closestPoint(pt); ptDist.setMinimum(closestPt, pt); }
public static void computeDistance(LineSegment segment, Coordinate pt, PointPairDistance ptDist) { Coordinate closestPt = segment.closestPoint(pt); ptDist.setMinimum(closestPt, pt); }
private void updatePts(Coordinate p, Coordinate seg0, Coordinate seg1) { minPts[0] = p; LineSegment seg = new LineSegment(seg0, seg1); minPts[1] = new Coordinate(seg.closestPoint(p)); }
// create Line: P1(0,0) - P2(0,10) LineSegment ls = new LineSegment(0, 0, 0, 10); // create Point: P3(5,5) Coordinate c = new Coordinate(5, 5); // create snapped Point: P4(0,5) Coordinate snappedPoint = ls.closestPoint(c);
double dist; Coordinate close00 = closestPoint(line.p0); minDistance = close00.distance(line.p0); closestPt[0] = close00; closestPt[1] = line.p0; Coordinate close01 = closestPoint(line.p1); dist = close01.distance(line.p1); if (dist < minDistance) { Coordinate close10 = line.closestPoint(p0); dist = close10.distance(p0); if (dist < minDistance) { Coordinate close11 = line.closestPoint(p1); dist = close11.distance(p1); if (dist < minDistance) {
public static void computeDistance(LineString line, Coordinate pt, PointPairDistance ptDist) { Coordinate[] coords = line.getCoordinates(); LineSegment tempSegment = new LineSegment(); for (int i = 0; i < coords.length - 1; i++) { tempSegment.setCoordinates(coords[i], coords[i + 1]); // this is somewhat inefficient - could do better Coordinate closestPt = tempSegment.closestPoint(pt); ptDist.setMinimum(closestPt, pt); } }
public static void computeDistance(LineString line, Coordinate pt, PointPairDistance ptDist) { LineSegment tempSegment = new LineSegment(); Coordinate[] coords = line.getCoordinates(); for (int i = 0; i < coords.length - 1; i++) { tempSegment.setCoordinates(coords[i], coords[i + 1]); // this is somewhat inefficient - could do better Coordinate closestPt = tempSegment.closestPoint(pt); ptDist.setMinimum(closestPt, pt); } }
private void computeMinDistanceLinePoint(LineString line,Point point, boolean flip) { Coordinate[] lineCoord = line.getCoordinates(); Coordinate coord = point.getCoordinate(); // brute force approach! for (int i = 0; i < lineCoord.length - 1; i++) { double dist = CGAlgorithms3D.distancePointSegment(coord, lineCoord[i], lineCoord[i + 1]); if (dist < minDistance) { LineSegment seg = new LineSegment(lineCoord[i], lineCoord[i + 1]); Coordinate segClosestPoint = seg.closestPoint(coord); updateDistance(dist, new GeometryLocation(line, i, segClosestPoint), new GeometryLocation(point, 0, coord), flip); } if (isDone) return; } }
private void computeMinDistance(LineString line, Point pt, GeometryLocation[] locGeom) { if (line.getEnvelopeInternal().distance(pt.getEnvelopeInternal()) > minDistance) return; Coordinate[] coord0 = line.getCoordinates(); Coordinate coord = pt.getCoordinate(); // brute force approach! for (int i = 0; i < coord0.length - 1; i++) { double dist = CGAlgorithms.distancePointLine( coord, coord0[i], coord0[i + 1] ); if (dist < minDistance) { minDistance = dist; LineSegment seg = new LineSegment(coord0[i], coord0[i + 1]); Coordinate segClosestPoint = seg.closestPoint(coord); locGeom[0] = new GeometryLocation(line, i, segClosestPoint); locGeom[1] = new GeometryLocation(pt, 0, coord); } if (minDistance <= terminateDistance) return; } }
for (int i = 1; i < coAr.length; i++) { seg.p1 = coAr[i]; Coordinate cp = seg.closestPoint(co); d = cp.distance(co); if (d <= tolerance && d <= minDist) {