index.d.ts 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { LineString, MultiLineString, Feature, Point } from 'geojson';
  2. import { Coord, Units } from '@turf/helpers';
  3. /**
  4. * Returns the nearest point on a line to a given point.
  5. *
  6. * @function
  7. * @param {Geometry|Feature<LineString|MultiLineString>} lines lines to snap to
  8. * @param {Geometry|Feature<Point>|number[]} pt point to snap from
  9. * @param {Object} [options={}] Optional parameters
  10. * @param {string} [options.units='kilometers'] can be degrees, radians, miles, or kilometers
  11. * @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.
  12. * @example
  13. * var line = turf.lineString([
  14. * [-77.031669, 38.878605],
  15. * [-77.029609, 38.881946],
  16. * [-77.020339, 38.884084],
  17. * [-77.025661, 38.885821],
  18. * [-77.021884, 38.889563],
  19. * [-77.019824, 38.892368]
  20. * ]);
  21. * var pt = turf.point([-77.037076, 38.884017]);
  22. *
  23. * var snapped = turf.nearestPointOnLine(line, pt, {units: 'miles'});
  24. *
  25. * //addToMap
  26. * var addToMap = [line, pt, snapped];
  27. * snapped.properties['marker-color'] = '#00f';
  28. */
  29. declare function nearestPointOnLine<G extends LineString | MultiLineString>(lines: Feature<G> | G, pt: Coord, options?: {
  30. units?: Units;
  31. }): Feature<Point, {
  32. dist: number;
  33. index: number;
  34. multiFeatureIndex: number;
  35. location: number;
  36. [key: string]: any;
  37. }>;
  38. export { nearestPointOnLine as default, nearestPointOnLine };