computeMinDistanceLinePointList method
Implementation
void computeMinDistanceLinePointList(
LineString line, Point pt, List<GeometryLocation?> locGeom) {
if (line.getEnvelopeInternal().distance(pt.getEnvelopeInternal()) >
minDistance) return;
List<Coordinate> coord0 = line.getCoordinates();
Coordinate coord = pt.getCoordinate()!;
// brute force approach!
for (int i = 0; i < coord0.length - 1; i++) {
double dist = Distance.pointToSegment(coord, coord0[i], coord0[i + 1]);
if (dist < minDistance) {
minDistance = dist;
LineSegment seg =
new LineSegment.fromCoordinates(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;
}
}