@turf/point-to-line-distance 7.1.0 → 7.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -4,13 +4,13 @@
4
4
 
5
5
  ## pointToLineDistance
6
6
 
7
- Returns the minimum distance between a [Point][1] and a [LineString][2], being the distance from a line the
8
- minimum distance between the point and any segment of the `LineString`.
7
+ Calculates the distance between a given point and the nearest point on a
8
+ line. Sometimes referred to as the cross track distance.
9
9
 
10
10
  ### Parameters
11
11
 
12
- * `pt` **([Feature][3]<[Point][1]> | [Array][4]<[number][5]>)** Feature or Geometry
13
- * `line` **[Feature][3]<[LineString][2]>** GeoJSON Feature or Geometry
12
+ * `pt` **([Feature][1]<[Point][2]> | [Array][3]<[number][4]>)** Feature or Geometry
13
+ * `line` **[Feature][1]<[LineString][5]>** GeoJSON Feature or Geometry
14
14
  * `options` **[Object][6]** Optional parameters (optional, default `{}`)
15
15
 
16
16
  * `options.units` **[string][7]** can be anything supported by turf/convertLength
@@ -28,17 +28,17 @@ var distance = turf.pointToLineDistance(pt, line, {units: 'miles'});
28
28
  //=69.11854715938406
29
29
  ```
30
30
 
31
- Returns **[number][5]** distance between point and line
31
+ Returns **[number][4]** distance between point and line
32
32
 
33
- [1]: https://tools.ietf.org/html/rfc7946#section-3.1.2
33
+ [1]: https://tools.ietf.org/html/rfc7946#section-3.2
34
34
 
35
- [2]: https://tools.ietf.org/html/rfc7946#section-3.1.4
35
+ [2]: https://tools.ietf.org/html/rfc7946#section-3.1.2
36
36
 
37
- [3]: https://tools.ietf.org/html/rfc7946#section-3.2
37
+ [3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array
38
38
 
39
- [4]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array
39
+ [4]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
40
40
 
41
- [5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
41
+ [5]: https://tools.ietf.org/html/rfc7946#section-3.1.4
42
42
 
43
43
  [6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object
44
44
 
@@ -1,21 +1,18 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});// index.ts
2
- var _distance = require('@turf/distance');
3
2
 
4
3
 
5
4
 
6
5
 
7
6
 
8
7
  var _helpers = require('@turf/helpers');
8
+ var _nearestpointonline = require('@turf/nearest-point-on-line');
9
9
  var _invariant = require('@turf/invariant');
10
10
  var _meta = require('@turf/meta');
11
11
  var _rhumbdistance = require('@turf/rhumb-distance');
12
12
  function pointToLineDistance(pt, line, options = {}) {
13
- if (!options.method) {
14
- options.method = "geodesic";
15
- }
16
- if (!options.units) {
17
- options.units = "kilometers";
18
- }
13
+ var _a, _b;
14
+ const method = (_a = options.method) != null ? _a : "geodesic";
15
+ const units = (_b = options.units) != null ? _b : "kilometers";
19
16
  if (!pt) {
20
17
  throw new Error("pt is required");
21
18
  }
@@ -39,36 +36,41 @@ function pointToLineDistance(pt, line, options = {}) {
39
36
  let distance = Infinity;
40
37
  const p = pt.geometry.coordinates;
41
38
  _meta.segmentEach.call(void 0, line, (segment) => {
42
- const a = segment.geometry.coordinates[0];
43
- const b = segment.geometry.coordinates[1];
44
- const d = distanceToSegment(p, a, b, options);
45
- if (d < distance) {
46
- distance = d;
39
+ if (segment) {
40
+ const a = segment.geometry.coordinates[0];
41
+ const b = segment.geometry.coordinates[1];
42
+ const d = distanceToSegment(p, a, b, { method });
43
+ if (d < distance) {
44
+ distance = d;
45
+ }
47
46
  }
48
47
  });
49
- return _helpers.convertLength.call(void 0, distance, "degrees", options.units);
48
+ return _helpers.convertLength.call(void 0, distance, "degrees", units);
50
49
  }
51
50
  function distanceToSegment(p, a, b, options) {
51
+ if (options.method === "geodesic") {
52
+ const nearest = _nearestpointonline.nearestPointOnLine.call(void 0, _helpers.lineString.call(void 0, [a, b]).geometry, p, {
53
+ units: "degrees"
54
+ });
55
+ return nearest.properties.dist;
56
+ }
52
57
  const v = [b[0] - a[0], b[1] - a[1]];
53
58
  const w = [p[0] - a[0], p[1] - a[1]];
54
59
  const c1 = dot(w, v);
55
60
  if (c1 <= 0) {
56
- return calcDistance(p, a, { method: options.method, units: "degrees" });
61
+ return _rhumbdistance.rhumbDistance.call(void 0, p, a, { units: "degrees" });
57
62
  }
58
63
  const c2 = dot(v, v);
59
64
  if (c2 <= c1) {
60
- return calcDistance(p, b, { method: options.method, units: "degrees" });
65
+ return _rhumbdistance.rhumbDistance.call(void 0, p, b, { units: "degrees" });
61
66
  }
62
67
  const b2 = c1 / c2;
63
68
  const Pb = [a[0] + b2 * v[0], a[1] + b2 * v[1]];
64
- return calcDistance(p, Pb, { method: options.method, units: "degrees" });
69
+ return _rhumbdistance.rhumbDistance.call(void 0, p, Pb, { units: "degrees" });
65
70
  }
66
71
  function dot(u, v) {
67
72
  return u[0] * v[0] + u[1] * v[1];
68
73
  }
69
- function calcDistance(a, b, options) {
70
- return options.method === "planar" ? _rhumbdistance.rhumbDistance.call(void 0, a, b, options) : _distance.distance.call(void 0, a, b, options);
71
- }
72
74
  var turf_point_to_line_distance_default = pointToLineDistance;
73
75
 
74
76
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../index.ts"],"names":[],"mappings":";AAEA,SAAS,YAAY,mBAAmB;AACxC;AAAA,EACE;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP,SAAS,iBAAiB;AAC1B,SAAS,mBAAmB;AAC5B,SAAS,iBAAiB,yBAAyB;AAsBnD,SAAS,oBACP,IACA,MACA,UAGI,CAAC,GACG;AAER,MAAI,CAAC,QAAQ,QAAQ;AACnB,YAAQ,SAAS;AAAA,EACnB;AACA,MAAI,CAAC,QAAQ,OAAO;AAClB,YAAQ,QAAQ;AAAA,EAClB;AAGA,MAAI,CAAC,IAAI;AACP,UAAM,IAAI,MAAM,gBAAgB;AAAA,EAClC;AACA,MAAI,MAAM,QAAQ,EAAE,GAAG;AACrB,SAAK,MAAM,EAAE;AAAA,EACf,WAAW,GAAG,SAAS,SAAS;AAC9B,SAAK,QAAQ,EAAE;AAAA,EACjB,OAAO;AACL,cAAU,IAAI,SAAS,OAAO;AAAA,EAChC;AAEA,MAAI,CAAC,MAAM;AACT,UAAM,IAAI,MAAM,kBAAkB;AAAA,EACpC;AACA,MAAI,MAAM,QAAQ,IAAI,GAAG;AACvB,WAAO,WAAW,IAAI;AAAA,EACxB,WAAW,KAAK,SAAS,cAAc;AACrC,WAAO,QAAQ,IAAI;AAAA,EACrB,OAAO;AACL,cAAU,MAAM,cAAc,MAAM;AAAA,EACtC;AAEA,MAAI,WAAW;AACf,QAAM,IAAI,GAAG,SAAS;AACtB,cAAY,MAAM,CAAC,YAAY;AAC7B,UAAM,IAAI,QAAS,SAAS,YAAY,CAAC;AACzC,UAAM,IAAI,QAAS,SAAS,YAAY,CAAC;AACzC,UAAM,IAAI,kBAAkB,GAAG,GAAG,GAAG,OAAO;AAC5C,QAAI,IAAI,UAAU;AAChB,iBAAW;AAAA,IACb;AAAA,EACF,CAAC;AACD,SAAO,cAAc,UAAU,WAAW,QAAQ,KAAK;AACzD;AAYA,SAAS,kBACP,GACA,GACA,GACA,SACA;AACA,QAAM,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;AACnC,QAAM,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;AAEnC,QAAM,KAAK,IAAI,GAAG,CAAC;AACnB,MAAI,MAAM,GAAG;AACX,WAAO,aAAa,GAAG,GAAG,EAAE,QAAQ,QAAQ,QAAQ,OAAO,UAAU,CAAC;AAAA,EACxE;AACA,QAAM,KAAK,IAAI,GAAG,CAAC;AACnB,MAAI,MAAM,IAAI;AACZ,WAAO,aAAa,GAAG,GAAG,EAAE,QAAQ,QAAQ,QAAQ,OAAO,UAAU,CAAC;AAAA,EACxE;AACA,QAAM,KAAK,KAAK;AAChB,QAAM,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;AAC9C,SAAO,aAAa,GAAG,IAAI,EAAE,QAAQ,QAAQ,QAAQ,OAAO,UAAU,CAAC;AACzE;AAEA,SAAS,IAAI,GAAa,GAAa;AACrC,SAAO,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;AACjC;AAEA,SAAS,aAAa,GAAa,GAAa,SAAc;AAC5D,SAAO,QAAQ,WAAW,WACtB,kBAAkB,GAAG,GAAG,OAAO,IAC/B,YAAY,GAAG,GAAG,OAAO;AAC/B;AAGA,IAAO,sCAAQ","sourcesContent":["// Taken from http://geomalgorithms.com/a02-_lines.html\nimport { Feature, LineString } from \"geojson\";\nimport { distance as getDistance } from \"@turf/distance\";\nimport {\n convertLength,\n Coord,\n feature,\n lineString,\n point,\n Units,\n} from \"@turf/helpers\";\nimport { featureOf } from \"@turf/invariant\";\nimport { segmentEach } from \"@turf/meta\";\nimport { rhumbDistance as getPlanarDistance } from \"@turf/rhumb-distance\";\n\n/**\n * Returns the minimum distance between a {@link Point} and a {@link LineString}, being the distance from a line the\n * minimum distance between the point and any segment of the `LineString`.\n *\n * @name pointToLineDistance\n * @param {Feature<Point>|Array<number>} pt Feature or Geometry\n * @param {Feature<LineString>} line GeoJSON Feature or Geometry\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.units=\"kilometers\"] can be anything supported by turf/convertLength\n * (ex: degrees, radians, miles, or kilometers)\n * @param {string} [options.method=\"geodesic\"] whether to calculate the distance based on geodesic (spheroid) or\n * planar (flat) method. Valid options are 'geodesic' or 'planar'.\n * @returns {number} distance between point and line\n * @example\n * var pt = turf.point([0, 0]);\n * var line = turf.lineString([[1, 1],[-1, 1]]);\n *\n * var distance = turf.pointToLineDistance(pt, line, {units: 'miles'});\n * //=69.11854715938406\n */\nfunction pointToLineDistance(\n pt: Coord,\n line: Feature<LineString> | LineString,\n options: {\n units?: Units;\n method?: \"geodesic\" | \"planar\";\n } = {}\n): number {\n // Optional parameters\n if (!options.method) {\n options.method = \"geodesic\";\n }\n if (!options.units) {\n options.units = \"kilometers\";\n }\n\n // validation\n if (!pt) {\n throw new Error(\"pt is required\");\n }\n if (Array.isArray(pt)) {\n pt = point(pt);\n } else if (pt.type === \"Point\") {\n pt = feature(pt);\n } else {\n featureOf(pt, \"Point\", \"point\");\n }\n\n if (!line) {\n throw new Error(\"line is required\");\n }\n if (Array.isArray(line)) {\n line = lineString(line);\n } else if (line.type === \"LineString\") {\n line = feature(line);\n } else {\n featureOf(line, \"LineString\", \"line\");\n }\n\n let distance = Infinity;\n const p = pt.geometry.coordinates;\n segmentEach(line, (segment) => {\n const a = segment!.geometry.coordinates[0];\n const b = segment!.geometry.coordinates[1];\n const d = distanceToSegment(p, a, b, options);\n if (d < distance) {\n distance = d;\n }\n });\n return convertLength(distance, \"degrees\", options.units);\n}\n\n/**\n * Returns the distance between a point P on a segment AB.\n *\n * @private\n * @param {Array<number>} p external point\n * @param {Array<number>} a first segment point\n * @param {Array<number>} b second segment point\n * @param {Object} [options={}] Optional parameters\n * @returns {number} distance\n */\nfunction distanceToSegment(\n p: number[],\n a: number[],\n b: number[],\n options: any\n) {\n const v = [b[0] - a[0], b[1] - a[1]];\n const w = [p[0] - a[0], p[1] - a[1]];\n\n const c1 = dot(w, v);\n if (c1 <= 0) {\n return calcDistance(p, a, { method: options.method, units: \"degrees\" });\n }\n const c2 = dot(v, v);\n if (c2 <= c1) {\n return calcDistance(p, b, { method: options.method, units: \"degrees\" });\n }\n const b2 = c1 / c2;\n const Pb = [a[0] + b2 * v[0], a[1] + b2 * v[1]];\n return calcDistance(p, Pb, { method: options.method, units: \"degrees\" });\n}\n\nfunction dot(u: number[], v: number[]) {\n return u[0] * v[0] + u[1] * v[1];\n}\n\nfunction calcDistance(a: number[], b: number[], options: any) {\n return options.method === \"planar\"\n ? getPlanarDistance(a, b, options)\n : getDistance(a, b, options);\n}\n\nexport { pointToLineDistance };\nexport default pointToLineDistance;\n"]}
1
+ {"version":3,"sources":["/home/runner/work/turf/turf/packages/turf-point-to-line-distance/dist/cjs/index.cjs","../../index.ts"],"names":[],"mappings":"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","file":"/home/runner/work/turf/turf/packages/turf-point-to-line-distance/dist/cjs/index.cjs","sourcesContent":[null,"// Taken from http://geomalgorithms.com/a02-_lines.html\nimport { Feature, LineString } from \"geojson\";\nimport {\n convertLength,\n Coord,\n feature,\n lineString,\n point,\n Units,\n} from \"@turf/helpers\";\nimport { nearestPointOnLine } from \"@turf/nearest-point-on-line\";\nimport { featureOf } from \"@turf/invariant\";\nimport { segmentEach } from \"@turf/meta\";\nimport { rhumbDistance } from \"@turf/rhumb-distance\";\n\n/**\n * Calculates the distance between a given point and the nearest point on a\n * line. Sometimes referred to as the cross track distance.\n *\n * @function\n * @param {Feature<Point>|Array<number>} pt Feature or Geometry\n * @param {Feature<LineString>} line GeoJSON Feature or Geometry\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.units=\"kilometers\"] can be anything supported by turf/convertLength\n * (ex: degrees, radians, miles, or kilometers)\n * @param {string} [options.method=\"geodesic\"] whether to calculate the distance based on geodesic (spheroid) or\n * planar (flat) method. Valid options are 'geodesic' or 'planar'.\n * @returns {number} distance between point and line\n * @example\n * var pt = turf.point([0, 0]);\n * var line = turf.lineString([[1, 1],[-1, 1]]);\n *\n * var distance = turf.pointToLineDistance(pt, line, {units: 'miles'});\n * //=69.11854715938406\n */\nfunction pointToLineDistance(\n pt: Coord,\n line: Feature<LineString> | LineString,\n options: {\n units?: Units;\n method?: \"geodesic\" | \"planar\";\n } = {}\n): number {\n // Optional parameters\n const method = options.method ?? \"geodesic\";\n const units = options.units ?? \"kilometers\";\n\n // validation\n if (!pt) {\n throw new Error(\"pt is required\");\n }\n if (Array.isArray(pt)) {\n pt = point(pt);\n } else if (pt.type === \"Point\") {\n pt = feature(pt);\n } else {\n featureOf(pt, \"Point\", \"point\");\n }\n\n if (!line) {\n throw new Error(\"line is required\");\n }\n if (Array.isArray(line)) {\n line = lineString(line);\n } else if (line.type === \"LineString\") {\n line = feature(line);\n } else {\n featureOf(line, \"LineString\", \"line\");\n }\n\n let distance = Infinity;\n const p = pt.geometry.coordinates;\n segmentEach(line, (segment) => {\n if (segment) {\n const a = segment.geometry.coordinates[0];\n const b = segment.geometry.coordinates[1];\n const d = distanceToSegment(p, a, b, { method });\n if (d < distance) {\n distance = d;\n }\n }\n });\n return convertLength(distance, \"degrees\", units);\n}\n\n/**\n * Returns the distance between a point P on a segment AB.\n *\n * @private\n * @param {Array<number>} p external point\n * @param {Array<number>} a first segment point\n * @param {Array<number>} b second segment point\n * @param {Object} [options={}] Optional parameters\n * @returns {number} distance\n */\nfunction distanceToSegment(\n p: number[], // point to measure from\n a: number[], // start point of the segment to measure to\n b: number[], // end point of the segment to measure to\n options: {\n method: \"geodesic\" | \"planar\";\n }\n) {\n // Internally just use degrees, and then convert to the user's requested units\n // in the calling function.\n if (options.method === \"geodesic\") {\n // Use nearestPointOnLine to properly calculate distances on a spherical\n // Earth.\n const nearest = nearestPointOnLine(lineString([a, b]).geometry, p, {\n units: \"degrees\",\n });\n return nearest.properties.dist;\n }\n\n // Perform scalar calculations instead using rhumb lines.\n const v = [b[0] - a[0], b[1] - a[1]];\n const w = [p[0] - a[0], p[1] - a[1]];\n\n const c1 = dot(w, v);\n if (c1 <= 0) {\n return rhumbDistance(p, a, { units: \"degrees\" });\n }\n const c2 = dot(v, v);\n if (c2 <= c1) {\n return rhumbDistance(p, b, { units: \"degrees\" });\n }\n const b2 = c1 / c2;\n const Pb = [a[0] + b2 * v[0], a[1] + b2 * v[1]];\n\n return rhumbDistance(p, Pb, { units: \"degrees\" });\n}\n\nfunction dot(u: number[], v: number[]) {\n return u[0] * v[0] + u[1] * v[1];\n}\n\nexport { pointToLineDistance };\nexport default pointToLineDistance;\n"]}
@@ -2,10 +2,10 @@ import { Feature, LineString } from 'geojson';
2
2
  import { Coord, Units } from '@turf/helpers';
3
3
 
4
4
  /**
5
- * Returns the minimum distance between a {@link Point} and a {@link LineString}, being the distance from a line the
6
- * minimum distance between the point and any segment of the `LineString`.
5
+ * Calculates the distance between a given point and the nearest point on a
6
+ * line. Sometimes referred to as the cross track distance.
7
7
  *
8
- * @name pointToLineDistance
8
+ * @function
9
9
  * @param {Feature<Point>|Array<number>} pt Feature or Geometry
10
10
  * @param {Feature<LineString>} line GeoJSON Feature or Geometry
11
11
  * @param {Object} [options={}] Optional parameters
@@ -2,10 +2,10 @@ import { Feature, LineString } from 'geojson';
2
2
  import { Coord, Units } from '@turf/helpers';
3
3
 
4
4
  /**
5
- * Returns the minimum distance between a {@link Point} and a {@link LineString}, being the distance from a line the
6
- * minimum distance between the point and any segment of the `LineString`.
5
+ * Calculates the distance between a given point and the nearest point on a
6
+ * line. Sometimes referred to as the cross track distance.
7
7
  *
8
- * @name pointToLineDistance
8
+ * @function
9
9
  * @param {Feature<Point>|Array<number>} pt Feature or Geometry
10
10
  * @param {Feature<LineString>} line GeoJSON Feature or Geometry
11
11
  * @param {Object} [options={}] Optional parameters
package/dist/esm/index.js CHANGED
@@ -1,21 +1,18 @@
1
1
  // index.ts
2
- import { distance as getDistance } from "@turf/distance";
3
2
  import {
4
3
  convertLength,
5
4
  feature,
6
5
  lineString,
7
6
  point
8
7
  } from "@turf/helpers";
8
+ import { nearestPointOnLine } from "@turf/nearest-point-on-line";
9
9
  import { featureOf } from "@turf/invariant";
10
10
  import { segmentEach } from "@turf/meta";
11
- import { rhumbDistance as getPlanarDistance } from "@turf/rhumb-distance";
11
+ import { rhumbDistance } from "@turf/rhumb-distance";
12
12
  function pointToLineDistance(pt, line, options = {}) {
13
- if (!options.method) {
14
- options.method = "geodesic";
15
- }
16
- if (!options.units) {
17
- options.units = "kilometers";
18
- }
13
+ var _a, _b;
14
+ const method = (_a = options.method) != null ? _a : "geodesic";
15
+ const units = (_b = options.units) != null ? _b : "kilometers";
19
16
  if (!pt) {
20
17
  throw new Error("pt is required");
21
18
  }
@@ -39,36 +36,41 @@ function pointToLineDistance(pt, line, options = {}) {
39
36
  let distance = Infinity;
40
37
  const p = pt.geometry.coordinates;
41
38
  segmentEach(line, (segment) => {
42
- const a = segment.geometry.coordinates[0];
43
- const b = segment.geometry.coordinates[1];
44
- const d = distanceToSegment(p, a, b, options);
45
- if (d < distance) {
46
- distance = d;
39
+ if (segment) {
40
+ const a = segment.geometry.coordinates[0];
41
+ const b = segment.geometry.coordinates[1];
42
+ const d = distanceToSegment(p, a, b, { method });
43
+ if (d < distance) {
44
+ distance = d;
45
+ }
47
46
  }
48
47
  });
49
- return convertLength(distance, "degrees", options.units);
48
+ return convertLength(distance, "degrees", units);
50
49
  }
51
50
  function distanceToSegment(p, a, b, options) {
51
+ if (options.method === "geodesic") {
52
+ const nearest = nearestPointOnLine(lineString([a, b]).geometry, p, {
53
+ units: "degrees"
54
+ });
55
+ return nearest.properties.dist;
56
+ }
52
57
  const v = [b[0] - a[0], b[1] - a[1]];
53
58
  const w = [p[0] - a[0], p[1] - a[1]];
54
59
  const c1 = dot(w, v);
55
60
  if (c1 <= 0) {
56
- return calcDistance(p, a, { method: options.method, units: "degrees" });
61
+ return rhumbDistance(p, a, { units: "degrees" });
57
62
  }
58
63
  const c2 = dot(v, v);
59
64
  if (c2 <= c1) {
60
- return calcDistance(p, b, { method: options.method, units: "degrees" });
65
+ return rhumbDistance(p, b, { units: "degrees" });
61
66
  }
62
67
  const b2 = c1 / c2;
63
68
  const Pb = [a[0] + b2 * v[0], a[1] + b2 * v[1]];
64
- return calcDistance(p, Pb, { method: options.method, units: "degrees" });
69
+ return rhumbDistance(p, Pb, { units: "degrees" });
65
70
  }
66
71
  function dot(u, v) {
67
72
  return u[0] * v[0] + u[1] * v[1];
68
73
  }
69
- function calcDistance(a, b, options) {
70
- return options.method === "planar" ? getPlanarDistance(a, b, options) : getDistance(a, b, options);
71
- }
72
74
  var turf_point_to_line_distance_default = pointToLineDistance;
73
75
  export {
74
76
  turf_point_to_line_distance_default as default,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../index.ts"],"sourcesContent":["// Taken from http://geomalgorithms.com/a02-_lines.html\nimport { Feature, LineString } from \"geojson\";\nimport { distance as getDistance } from \"@turf/distance\";\nimport {\n convertLength,\n Coord,\n feature,\n lineString,\n point,\n Units,\n} from \"@turf/helpers\";\nimport { featureOf } from \"@turf/invariant\";\nimport { segmentEach } from \"@turf/meta\";\nimport { rhumbDistance as getPlanarDistance } from \"@turf/rhumb-distance\";\n\n/**\n * Returns the minimum distance between a {@link Point} and a {@link LineString}, being the distance from a line the\n * minimum distance between the point and any segment of the `LineString`.\n *\n * @name pointToLineDistance\n * @param {Feature<Point>|Array<number>} pt Feature or Geometry\n * @param {Feature<LineString>} line GeoJSON Feature or Geometry\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.units=\"kilometers\"] can be anything supported by turf/convertLength\n * (ex: degrees, radians, miles, or kilometers)\n * @param {string} [options.method=\"geodesic\"] whether to calculate the distance based on geodesic (spheroid) or\n * planar (flat) method. Valid options are 'geodesic' or 'planar'.\n * @returns {number} distance between point and line\n * @example\n * var pt = turf.point([0, 0]);\n * var line = turf.lineString([[1, 1],[-1, 1]]);\n *\n * var distance = turf.pointToLineDistance(pt, line, {units: 'miles'});\n * //=69.11854715938406\n */\nfunction pointToLineDistance(\n pt: Coord,\n line: Feature<LineString> | LineString,\n options: {\n units?: Units;\n method?: \"geodesic\" | \"planar\";\n } = {}\n): number {\n // Optional parameters\n if (!options.method) {\n options.method = \"geodesic\";\n }\n if (!options.units) {\n options.units = \"kilometers\";\n }\n\n // validation\n if (!pt) {\n throw new Error(\"pt is required\");\n }\n if (Array.isArray(pt)) {\n pt = point(pt);\n } else if (pt.type === \"Point\") {\n pt = feature(pt);\n } else {\n featureOf(pt, \"Point\", \"point\");\n }\n\n if (!line) {\n throw new Error(\"line is required\");\n }\n if (Array.isArray(line)) {\n line = lineString(line);\n } else if (line.type === \"LineString\") {\n line = feature(line);\n } else {\n featureOf(line, \"LineString\", \"line\");\n }\n\n let distance = Infinity;\n const p = pt.geometry.coordinates;\n segmentEach(line, (segment) => {\n const a = segment!.geometry.coordinates[0];\n const b = segment!.geometry.coordinates[1];\n const d = distanceToSegment(p, a, b, options);\n if (d < distance) {\n distance = d;\n }\n });\n return convertLength(distance, \"degrees\", options.units);\n}\n\n/**\n * Returns the distance between a point P on a segment AB.\n *\n * @private\n * @param {Array<number>} p external point\n * @param {Array<number>} a first segment point\n * @param {Array<number>} b second segment point\n * @param {Object} [options={}] Optional parameters\n * @returns {number} distance\n */\nfunction distanceToSegment(\n p: number[],\n a: number[],\n b: number[],\n options: any\n) {\n const v = [b[0] - a[0], b[1] - a[1]];\n const w = [p[0] - a[0], p[1] - a[1]];\n\n const c1 = dot(w, v);\n if (c1 <= 0) {\n return calcDistance(p, a, { method: options.method, units: \"degrees\" });\n }\n const c2 = dot(v, v);\n if (c2 <= c1) {\n return calcDistance(p, b, { method: options.method, units: \"degrees\" });\n }\n const b2 = c1 / c2;\n const Pb = [a[0] + b2 * v[0], a[1] + b2 * v[1]];\n return calcDistance(p, Pb, { method: options.method, units: \"degrees\" });\n}\n\nfunction dot(u: number[], v: number[]) {\n return u[0] * v[0] + u[1] * v[1];\n}\n\nfunction calcDistance(a: number[], b: number[], options: any) {\n return options.method === \"planar\"\n ? getPlanarDistance(a, b, options)\n : getDistance(a, b, options);\n}\n\nexport { pointToLineDistance };\nexport default pointToLineDistance;\n"],"mappings":";AAEA,SAAS,YAAY,mBAAmB;AACxC;AAAA,EACE;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP,SAAS,iBAAiB;AAC1B,SAAS,mBAAmB;AAC5B,SAAS,iBAAiB,yBAAyB;AAsBnD,SAAS,oBACP,IACA,MACA,UAGI,CAAC,GACG;AAER,MAAI,CAAC,QAAQ,QAAQ;AACnB,YAAQ,SAAS;AAAA,EACnB;AACA,MAAI,CAAC,QAAQ,OAAO;AAClB,YAAQ,QAAQ;AAAA,EAClB;AAGA,MAAI,CAAC,IAAI;AACP,UAAM,IAAI,MAAM,gBAAgB;AAAA,EAClC;AACA,MAAI,MAAM,QAAQ,EAAE,GAAG;AACrB,SAAK,MAAM,EAAE;AAAA,EACf,WAAW,GAAG,SAAS,SAAS;AAC9B,SAAK,QAAQ,EAAE;AAAA,EACjB,OAAO;AACL,cAAU,IAAI,SAAS,OAAO;AAAA,EAChC;AAEA,MAAI,CAAC,MAAM;AACT,UAAM,IAAI,MAAM,kBAAkB;AAAA,EACpC;AACA,MAAI,MAAM,QAAQ,IAAI,GAAG;AACvB,WAAO,WAAW,IAAI;AAAA,EACxB,WAAW,KAAK,SAAS,cAAc;AACrC,WAAO,QAAQ,IAAI;AAAA,EACrB,OAAO;AACL,cAAU,MAAM,cAAc,MAAM;AAAA,EACtC;AAEA,MAAI,WAAW;AACf,QAAM,IAAI,GAAG,SAAS;AACtB,cAAY,MAAM,CAAC,YAAY;AAC7B,UAAM,IAAI,QAAS,SAAS,YAAY,CAAC;AACzC,UAAM,IAAI,QAAS,SAAS,YAAY,CAAC;AACzC,UAAM,IAAI,kBAAkB,GAAG,GAAG,GAAG,OAAO;AAC5C,QAAI,IAAI,UAAU;AAChB,iBAAW;AAAA,IACb;AAAA,EACF,CAAC;AACD,SAAO,cAAc,UAAU,WAAW,QAAQ,KAAK;AACzD;AAYA,SAAS,kBACP,GACA,GACA,GACA,SACA;AACA,QAAM,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;AACnC,QAAM,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;AAEnC,QAAM,KAAK,IAAI,GAAG,CAAC;AACnB,MAAI,MAAM,GAAG;AACX,WAAO,aAAa,GAAG,GAAG,EAAE,QAAQ,QAAQ,QAAQ,OAAO,UAAU,CAAC;AAAA,EACxE;AACA,QAAM,KAAK,IAAI,GAAG,CAAC;AACnB,MAAI,MAAM,IAAI;AACZ,WAAO,aAAa,GAAG,GAAG,EAAE,QAAQ,QAAQ,QAAQ,OAAO,UAAU,CAAC;AAAA,EACxE;AACA,QAAM,KAAK,KAAK;AAChB,QAAM,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;AAC9C,SAAO,aAAa,GAAG,IAAI,EAAE,QAAQ,QAAQ,QAAQ,OAAO,UAAU,CAAC;AACzE;AAEA,SAAS,IAAI,GAAa,GAAa;AACrC,SAAO,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;AACjC;AAEA,SAAS,aAAa,GAAa,GAAa,SAAc;AAC5D,SAAO,QAAQ,WAAW,WACtB,kBAAkB,GAAG,GAAG,OAAO,IAC/B,YAAY,GAAG,GAAG,OAAO;AAC/B;AAGA,IAAO,sCAAQ;","names":[]}
1
+ {"version":3,"sources":["../../index.ts"],"sourcesContent":["// Taken from http://geomalgorithms.com/a02-_lines.html\nimport { Feature, LineString } from \"geojson\";\nimport {\n convertLength,\n Coord,\n feature,\n lineString,\n point,\n Units,\n} from \"@turf/helpers\";\nimport { nearestPointOnLine } from \"@turf/nearest-point-on-line\";\nimport { featureOf } from \"@turf/invariant\";\nimport { segmentEach } from \"@turf/meta\";\nimport { rhumbDistance } from \"@turf/rhumb-distance\";\n\n/**\n * Calculates the distance between a given point and the nearest point on a\n * line. Sometimes referred to as the cross track distance.\n *\n * @function\n * @param {Feature<Point>|Array<number>} pt Feature or Geometry\n * @param {Feature<LineString>} line GeoJSON Feature or Geometry\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.units=\"kilometers\"] can be anything supported by turf/convertLength\n * (ex: degrees, radians, miles, or kilometers)\n * @param {string} [options.method=\"geodesic\"] whether to calculate the distance based on geodesic (spheroid) or\n * planar (flat) method. Valid options are 'geodesic' or 'planar'.\n * @returns {number} distance between point and line\n * @example\n * var pt = turf.point([0, 0]);\n * var line = turf.lineString([[1, 1],[-1, 1]]);\n *\n * var distance = turf.pointToLineDistance(pt, line, {units: 'miles'});\n * //=69.11854715938406\n */\nfunction pointToLineDistance(\n pt: Coord,\n line: Feature<LineString> | LineString,\n options: {\n units?: Units;\n method?: \"geodesic\" | \"planar\";\n } = {}\n): number {\n // Optional parameters\n const method = options.method ?? \"geodesic\";\n const units = options.units ?? \"kilometers\";\n\n // validation\n if (!pt) {\n throw new Error(\"pt is required\");\n }\n if (Array.isArray(pt)) {\n pt = point(pt);\n } else if (pt.type === \"Point\") {\n pt = feature(pt);\n } else {\n featureOf(pt, \"Point\", \"point\");\n }\n\n if (!line) {\n throw new Error(\"line is required\");\n }\n if (Array.isArray(line)) {\n line = lineString(line);\n } else if (line.type === \"LineString\") {\n line = feature(line);\n } else {\n featureOf(line, \"LineString\", \"line\");\n }\n\n let distance = Infinity;\n const p = pt.geometry.coordinates;\n segmentEach(line, (segment) => {\n if (segment) {\n const a = segment.geometry.coordinates[0];\n const b = segment.geometry.coordinates[1];\n const d = distanceToSegment(p, a, b, { method });\n if (d < distance) {\n distance = d;\n }\n }\n });\n return convertLength(distance, \"degrees\", units);\n}\n\n/**\n * Returns the distance between a point P on a segment AB.\n *\n * @private\n * @param {Array<number>} p external point\n * @param {Array<number>} a first segment point\n * @param {Array<number>} b second segment point\n * @param {Object} [options={}] Optional parameters\n * @returns {number} distance\n */\nfunction distanceToSegment(\n p: number[], // point to measure from\n a: number[], // start point of the segment to measure to\n b: number[], // end point of the segment to measure to\n options: {\n method: \"geodesic\" | \"planar\";\n }\n) {\n // Internally just use degrees, and then convert to the user's requested units\n // in the calling function.\n if (options.method === \"geodesic\") {\n // Use nearestPointOnLine to properly calculate distances on a spherical\n // Earth.\n const nearest = nearestPointOnLine(lineString([a, b]).geometry, p, {\n units: \"degrees\",\n });\n return nearest.properties.dist;\n }\n\n // Perform scalar calculations instead using rhumb lines.\n const v = [b[0] - a[0], b[1] - a[1]];\n const w = [p[0] - a[0], p[1] - a[1]];\n\n const c1 = dot(w, v);\n if (c1 <= 0) {\n return rhumbDistance(p, a, { units: \"degrees\" });\n }\n const c2 = dot(v, v);\n if (c2 <= c1) {\n return rhumbDistance(p, b, { units: \"degrees\" });\n }\n const b2 = c1 / c2;\n const Pb = [a[0] + b2 * v[0], a[1] + b2 * v[1]];\n\n return rhumbDistance(p, Pb, { units: \"degrees\" });\n}\n\nfunction dot(u: number[], v: number[]) {\n return u[0] * v[0] + u[1] * v[1];\n}\n\nexport { pointToLineDistance };\nexport default pointToLineDistance;\n"],"mappings":";AAEA;AAAA,EACE;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP,SAAS,0BAA0B;AACnC,SAAS,iBAAiB;AAC1B,SAAS,mBAAmB;AAC5B,SAAS,qBAAqB;AAsB9B,SAAS,oBACP,IACA,MACA,UAGI,CAAC,GACG;AA1CV;AA4CE,QAAM,UAAS,aAAQ,WAAR,YAAkB;AACjC,QAAM,SAAQ,aAAQ,UAAR,YAAiB;AAG/B,MAAI,CAAC,IAAI;AACP,UAAM,IAAI,MAAM,gBAAgB;AAAA,EAClC;AACA,MAAI,MAAM,QAAQ,EAAE,GAAG;AACrB,SAAK,MAAM,EAAE;AAAA,EACf,WAAW,GAAG,SAAS,SAAS;AAC9B,SAAK,QAAQ,EAAE;AAAA,EACjB,OAAO;AACL,cAAU,IAAI,SAAS,OAAO;AAAA,EAChC;AAEA,MAAI,CAAC,MAAM;AACT,UAAM,IAAI,MAAM,kBAAkB;AAAA,EACpC;AACA,MAAI,MAAM,QAAQ,IAAI,GAAG;AACvB,WAAO,WAAW,IAAI;AAAA,EACxB,WAAW,KAAK,SAAS,cAAc;AACrC,WAAO,QAAQ,IAAI;AAAA,EACrB,OAAO;AACL,cAAU,MAAM,cAAc,MAAM;AAAA,EACtC;AAEA,MAAI,WAAW;AACf,QAAM,IAAI,GAAG,SAAS;AACtB,cAAY,MAAM,CAAC,YAAY;AAC7B,QAAI,SAAS;AACX,YAAM,IAAI,QAAQ,SAAS,YAAY,CAAC;AACxC,YAAM,IAAI,QAAQ,SAAS,YAAY,CAAC;AACxC,YAAM,IAAI,kBAAkB,GAAG,GAAG,GAAG,EAAE,OAAO,CAAC;AAC/C,UAAI,IAAI,UAAU;AAChB,mBAAW;AAAA,MACb;AAAA,IACF;AAAA,EACF,CAAC;AACD,SAAO,cAAc,UAAU,WAAW,KAAK;AACjD;AAYA,SAAS,kBACP,GACA,GACA,GACA,SAGA;AAGA,MAAI,QAAQ,WAAW,YAAY;AAGjC,UAAM,UAAU,mBAAmB,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG;AAAA,MACjE,OAAO;AAAA,IACT,CAAC;AACD,WAAO,QAAQ,WAAW;AAAA,EAC5B;AAGA,QAAM,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;AACnC,QAAM,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;AAEnC,QAAM,KAAK,IAAI,GAAG,CAAC;AACnB,MAAI,MAAM,GAAG;AACX,WAAO,cAAc,GAAG,GAAG,EAAE,OAAO,UAAU,CAAC;AAAA,EACjD;AACA,QAAM,KAAK,IAAI,GAAG,CAAC;AACnB,MAAI,MAAM,IAAI;AACZ,WAAO,cAAc,GAAG,GAAG,EAAE,OAAO,UAAU,CAAC;AAAA,EACjD;AACA,QAAM,KAAK,KAAK;AAChB,QAAM,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;AAE9C,SAAO,cAAc,GAAG,IAAI,EAAE,OAAO,UAAU,CAAC;AAClD;AAEA,SAAS,IAAI,GAAa,GAAa;AACrC,SAAO,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;AACjC;AAGA,IAAO,sCAAQ;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@turf/point-to-line-distance",
3
- "version": "7.1.0",
3
+ "version": "7.2.0",
4
4
  "description": "turf point-to-line-distance module",
5
5
  "author": "Turf Authors",
6
6
  "contributors": [
@@ -54,29 +54,30 @@
54
54
  "test:types": "tsc --esModuleInterop --module node16 --moduleResolution node16 --noEmit --strict types.ts"
55
55
  },
56
56
  "devDependencies": {
57
- "@turf/circle": "^7.1.0",
57
+ "@turf/circle": "^7.2.0",
58
58
  "@types/benchmark": "^2.1.5",
59
- "@types/tape": "^4.2.32",
59
+ "@types/tape": "^4.13.4",
60
60
  "benchmark": "^2.1.4",
61
61
  "load-json-file": "^7.0.1",
62
62
  "npm-run-all": "^4.1.5",
63
- "tape": "^5.7.2",
64
- "tsup": "^8.0.1",
65
- "tsx": "^4.6.2",
66
- "typescript": "^5.2.2",
63
+ "tape": "^5.9.0",
64
+ "tsup": "^8.3.5",
65
+ "tsx": "^4.19.2",
66
+ "typescript": "^5.5.4",
67
67
  "write-json-file": "^5.0.0"
68
68
  },
69
69
  "dependencies": {
70
- "@turf/bearing": "^7.1.0",
71
- "@turf/distance": "^7.1.0",
72
- "@turf/helpers": "^7.1.0",
73
- "@turf/invariant": "^7.1.0",
74
- "@turf/meta": "^7.1.0",
75
- "@turf/projection": "^7.1.0",
76
- "@turf/rhumb-bearing": "^7.1.0",
77
- "@turf/rhumb-distance": "^7.1.0",
70
+ "@turf/bearing": "^7.2.0",
71
+ "@turf/distance": "^7.2.0",
72
+ "@turf/helpers": "^7.2.0",
73
+ "@turf/invariant": "^7.2.0",
74
+ "@turf/meta": "^7.2.0",
75
+ "@turf/nearest-point-on-line": "^7.2.0",
76
+ "@turf/projection": "^7.2.0",
77
+ "@turf/rhumb-bearing": "^7.2.0",
78
+ "@turf/rhumb-distance": "^7.2.0",
78
79
  "@types/geojson": "^7946.0.10",
79
- "tslib": "^2.6.2"
80
+ "tslib": "^2.8.1"
80
81
  },
81
- "gitHead": "68915eeebc9278bb40dec3f1034499698a0561ef"
82
+ "gitHead": "7b0f0374c4668cd569f8904c71e2ae7d941be867"
82
83
  }