| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 | 
							- import bearing from "@turf/bearing";
 
- import destination from "@turf/destination";
 
- import measureDistance from "@turf/distance";
 
- import { point } from "@turf/helpers";
 
- import { getGeom } from "@turf/invariant";
 
- /**
 
-  * Takes a {@link LineString} and returns a {@link Point} at a specified distance along the line.
 
-  *
 
-  * @name along
 
-  * @param {Feature<LineString>} line input line
 
-  * @param {number} distance distance along the line
 
-  * @param {Object} [options] Optional parameters
 
-  * @param {string} [options.units="kilometers"] can be degrees, radians, miles, or kilometers
 
-  * @returns {Feature<Point>} Point `distance` `units` along the line
 
-  * @example
 
-  * var line = turf.lineString([[-83, 30], [-84, 36], [-78, 41]]);
 
-  * var options = {units: 'miles'};
 
-  *
 
-  * var along = turf.along(line, 200, options);
 
-  *
 
-  * //addToMap
 
-  * var addToMap = [along, line]
 
-  */
 
- export default function along(line, distance, options) {
 
-     if (options === void 0) { options = {}; }
 
-     // Get Coords
 
-     var geom = getGeom(line);
 
-     var coords = geom.coordinates;
 
-     var travelled = 0;
 
-     for (var i = 0; i < coords.length; i++) {
 
-         if (distance >= travelled && i === coords.length - 1) {
 
-             break;
 
-         }
 
-         else if (travelled >= distance) {
 
-             var overshot = distance - travelled;
 
-             if (!overshot) {
 
-                 return point(coords[i]);
 
-             }
 
-             else {
 
-                 var direction = bearing(coords[i], coords[i - 1]) - 180;
 
-                 var interpolated = destination(coords[i], overshot, direction, options);
 
-                 return interpolated;
 
-             }
 
-         }
 
-         else {
 
-             travelled += measureDistance(coords[i], coords[i + 1], options);
 
-         }
 
-     }
 
-     return point(coords[coords.length - 1]);
 
- }
 
 
  |