pointToLineDistance function
num
pointToLineDistance(
- Point point,
- LineString line, {
- Unit unit = Unit.kilometers,
- DistanceGeometry method = DistanceGeometry.geodesic,
Returns the minimum distance between a point and a line, being the
distance from a line the minimum distance between the point and any
segment of the LineString.
Example:
final point = Point(coordinates: Position(0, 0));
final line = LineString(coordinates: [Position(1, 1), Position(-1, 1)]);
final distance = pointToLineDistance(point, line, unit: Unit.miles);
// distance == 69.11854715938406
Implementation
num pointToLineDistance(
Point point,
LineString line, {
Unit unit = Unit.kilometers,
DistanceGeometry method = DistanceGeometry.geodesic,
}) {
var distance = double.infinity;
final position = point.coordinates;
segmentEach(line, (segment, _, __, ___, ____) {
final a = segment.geometry!.coordinates[0];
final b = segment.geometry!.coordinates[1];
final d = _distanceToSegment(position, a, b, method: method);
if (d < distance) {
distance = d.toDouble();
}
});
return convertLength(distance, Unit.degrees, unit);
}