Skip to main content
Version: 7.3.0

nearestPointOnLine

Description​

Returns the nearest point on a line to a given point.

If any of the segments in the input line string are antipodal and therefore have an undefined arc, this function will instead return that the point lies on the line.

Parameters​

NameTypeDescription
linesGeometry | Feature<LineString | MultiLineString>lines to snap to
ptGeometry | Feature<Point> | Array<number>point to snap from
options?ObjectOptional parameters (default {})
options.units?UnitsSupports all valid Turf Units (default 'kilometers')

Returns​

Feature<Point> closest point on the line to point. The properties object will contain four values: index: closest point was found on nth line part, multiFeatureIndex: closest point was found on the nth line of the MultiLineString, dist: distance between pt and the closest point, location: distance along the line between start and the closest point.

Examples​

var line = turf.lineString([
[-77.031669, 38.878605],
[-77.029609, 38.881946],
[-77.020339, 38.884084],
[-77.025661, 38.885821],
[-77.021884, 38.889563],
[-77.019824, 38.892368],
]);
var pt = turf.point([-77.037076, 38.884017]);

var snapped = turf.nearestPointOnLine(line, pt, { units: "miles" });

Installation​

$ npm install @turf/nearest-point-on-line

import { nearestPointOnLine } from "@turf/nearest-point-on-line";
const result = nearestPointOnLine(...);
$ npm install @turf/turf

import * as turf from "@turf/turf";
const result = turf.nearestPointOnLine(...);