# @turf/nearest-point-on-line ## nearestPointOnLine 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 * `lines` **([Geometry][1] | [Feature][2]<([LineString][3] | [MultiLineString][4])>)** lines to snap to * `pt` **([Geometry][1] | [Feature][2]<[Point][5]> | [Array][6]<[number][7]>)** point to snap from * `options` **[Object][8]** Optional parameters (optional, default `{}`) * `options.units` **Units** Supports all valid Turf [Units][9] (optional, default `'kilometers'`) ### Examples ```javascript 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'}); //addToMap var addToMap = [line, pt, snapped]; snapped.properties['marker-color'] = '#00f'; ``` Returns **[Feature][2]<[Point][5]>** 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. [1]: https://tools.ietf.org/html/rfc7946#section-3.1 [2]: https://tools.ietf.org/html/rfc7946#section-3.2 [3]: https://tools.ietf.org/html/rfc7946#section-3.1.4 [4]: https://tools.ietf.org/html/rfc7946#section-3.1.5 [5]: https://tools.ietf.org/html/rfc7946#section-3.1.2 [6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array [7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number [8]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object [9]: https://turfjs.org/docs/api/types/Units --- This module is part of the [Turfjs project](https://turfjs.org/), an open source module collection dedicated to geographic algorithms. It is maintained in the [Turfjs/turf](https://github.com/Turfjs/turf) repository, where you can create PRs and issues. ### Installation Install this single module individually: ```sh $ npm install @turf/nearest-point-on-line ``` Or install the all-encompassing @turf/turf module that includes all modules as functions: ```sh $ npm install @turf/turf ```