@turf/boolean-parallel 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.
@@ -4,25 +4,19 @@ var _linesegment = require('@turf/line-segment');
4
4
  var _rhumbbearing = require('@turf/rhumb-bearing');
5
5
  var _helpers = require('@turf/helpers');
6
6
  function booleanParallel(line1, line2) {
7
- if (!line1)
8
- throw new Error("line1 is required");
9
- if (!line2)
10
- throw new Error("line2 is required");
7
+ if (!line1) throw new Error("line1 is required");
8
+ if (!line2) throw new Error("line2 is required");
11
9
  var type1 = getType(line1, "line1");
12
- if (type1 !== "LineString")
13
- throw new Error("line1 must be a LineString");
10
+ if (type1 !== "LineString") throw new Error("line1 must be a LineString");
14
11
  var type2 = getType(line2, "line2");
15
- if (type2 !== "LineString")
16
- throw new Error("line2 must be a LineString");
12
+ if (type2 !== "LineString") throw new Error("line2 must be a LineString");
17
13
  var segments1 = _linesegment.lineSegment.call(void 0, _cleancoords.cleanCoords.call(void 0, line1)).features;
18
14
  var segments2 = _linesegment.lineSegment.call(void 0, _cleancoords.cleanCoords.call(void 0, line2)).features;
19
15
  for (var i = 0; i < segments1.length; i++) {
20
16
  var segment1 = segments1[i].geometry.coordinates;
21
- if (!segments2[i])
22
- break;
17
+ if (!segments2[i]) break;
23
18
  var segment2 = segments2[i].geometry.coordinates;
24
- if (!isParallel(segment1, segment2))
25
- return false;
19
+ if (!isParallel(segment1, segment2)) return false;
26
20
  }
27
21
  return true;
28
22
  }
@@ -34,8 +28,7 @@ function isParallel(segment1, segment2) {
34
28
  function getType(geojson, name) {
35
29
  if (geojson.geometry && geojson.geometry.type)
36
30
  return geojson.geometry.type;
37
- if (geojson.type)
38
- return geojson.type;
31
+ if (geojson.type) return geojson.type;
39
32
  throw new Error("Invalid GeoJSON object for " + name);
40
33
  }
41
34
  var turf_boolean_parallel_default = booleanParallel;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../index.ts"],"names":[],"mappings":";AACA,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB;AAC5B,SAAS,oBAAoB;AAC7B,SAAS,wBAAwB;AAgBjC,SAAS,gBACP,OACA,OACS;AAET,MAAI,CAAC;AAAO,UAAM,IAAI,MAAM,mBAAmB;AAC/C,MAAI,CAAC;AAAO,UAAM,IAAI,MAAM,mBAAmB;AAC/C,MAAI,QAAQ,QAAQ,OAAO,OAAO;AAClC,MAAI,UAAU;AAAc,UAAM,IAAI,MAAM,4BAA4B;AACxE,MAAI,QAAQ,QAAQ,OAAO,OAAO;AAClC,MAAI,UAAU;AAAc,UAAM,IAAI,MAAM,4BAA4B;AAExE,MAAI,YAAY,YAAY,YAAY,KAAK,CAAC,EAAE;AAChD,MAAI,YAAY,YAAY,YAAY,KAAK,CAAC,EAAE;AAEhD,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACzC,QAAI,WAAW,UAAU,CAAC,EAAE,SAAS;AACrC,QAAI,CAAC,UAAU,CAAC;AAAG;AACnB,QAAI,WAAW,UAAU,CAAC,EAAE,SAAS;AACrC,QAAI,CAAC,WAAW,UAAU,QAAQ;AAAG,aAAO;AAAA,EAC9C;AACA,SAAO;AACT;AAUA,SAAS,WAAW,UAAsB,UAAsB;AAC9D,MAAI,SAAS,iBAAiB,aAAa,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;AACpE,MAAI,SAAS,iBAAiB,aAAa,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;AACpE,SAAO,WAAW,WAAW,SAAS,UAAU,QAAQ;AAC1D;AAUA,SAAS,QAAQ,SAAkC,MAAc;AAC/D,MAAK,QAAoB,YAAa,QAAoB,SAAS;AACjE,WAAQ,QAAoB,SAAS;AACvC,MAAI,QAAQ;AAAM,WAAO,QAAQ;AACjC,QAAM,IAAI,MAAM,gCAAgC,IAAI;AACtD;AAGA,IAAO,gCAAQ","sourcesContent":["import { Feature, Geometry, LineString, Position } from \"geojson\";\nimport { cleanCoords } from \"@turf/clean-coords\";\nimport { lineSegment } from \"@turf/line-segment\";\nimport { rhumbBearing } from \"@turf/rhumb-bearing\";\nimport { bearingToAzimuth } from \"@turf/helpers\";\n\n/**\n * Boolean-Parallel returns True if each segment of `line1` is parallel to the correspondent segment of `line2`\n *\n * @name booleanParallel\n * @param {Geometry|Feature<LineString>} line1 GeoJSON Feature or Geometry\n * @param {Geometry|Feature<LineString>} line2 GeoJSON Feature or Geometry\n * @returns {boolean} true/false if the lines are parallel\n * @example\n * var line1 = turf.lineString([[0, 0], [0, 1]]);\n * var line2 = turf.lineString([[1, 0], [1, 1]]);\n *\n * turf.booleanParallel(line1, line2);\n * //=true\n */\nfunction booleanParallel(\n line1: Feature<LineString> | LineString,\n line2: Feature<LineString> | LineString\n): boolean {\n // validation\n if (!line1) throw new Error(\"line1 is required\");\n if (!line2) throw new Error(\"line2 is required\");\n var type1 = getType(line1, \"line1\");\n if (type1 !== \"LineString\") throw new Error(\"line1 must be a LineString\");\n var type2 = getType(line2, \"line2\");\n if (type2 !== \"LineString\") throw new Error(\"line2 must be a LineString\");\n\n var segments1 = lineSegment(cleanCoords(line1)).features;\n var segments2 = lineSegment(cleanCoords(line2)).features;\n\n for (var i = 0; i < segments1.length; i++) {\n var segment1 = segments1[i].geometry.coordinates;\n if (!segments2[i]) break;\n var segment2 = segments2[i].geometry.coordinates;\n if (!isParallel(segment1, segment2)) return false;\n }\n return true;\n}\n\n/**\n * Compares slopes and return result\n *\n * @private\n * @param {Geometry|Feature<LineString>} segment1 Geometry or Feature\n * @param {Geometry|Feature<LineString>} segment2 Geometry or Feature\n * @returns {boolean} if slopes are equal\n */\nfunction isParallel(segment1: Position[], segment2: Position[]) {\n var slope1 = bearingToAzimuth(rhumbBearing(segment1[0], segment1[1]));\n var slope2 = bearingToAzimuth(rhumbBearing(segment2[0], segment2[1]));\n return slope1 === slope2 || (slope2 - slope1) % 180 === 0;\n}\n\n/**\n * Returns Feature's type\n *\n * @private\n * @param {Geometry|Feature<any>} geojson Geometry or Feature\n * @param {string} name of the variable\n * @returns {string} Feature's type\n */\nfunction getType(geojson: Geometry | Feature<any>, name: string) {\n if ((geojson as Feature).geometry && (geojson as Feature).geometry.type)\n return (geojson as Feature).geometry.type;\n if (geojson.type) return geojson.type; // if GeoJSON geometry\n throw new Error(\"Invalid GeoJSON object for \" + name);\n}\n\nexport { booleanParallel };\nexport default booleanParallel;\n"]}
1
+ {"version":3,"sources":["/home/runner/work/turf/turf/packages/turf-boolean-parallel/dist/cjs/index.cjs","../../index.ts"],"names":[],"mappings":"AAAA;ACCA,iDAA4B;AAC5B,iDAA4B;AAC5B,mDAA6B;AAC7B,wCAAiC;AAgBjC,SAAS,eAAA,CACP,KAAA,EACA,KAAA,EACS;AAET,EAAA,GAAA,CAAI,CAAC,KAAA,EAAO,MAAM,IAAI,KAAA,CAAM,mBAAmB,CAAA;AAC/C,EAAA,GAAA,CAAI,CAAC,KAAA,EAAO,MAAM,IAAI,KAAA,CAAM,mBAAmB,CAAA;AAC/C,EAAA,IAAI,MAAA,EAAQ,OAAA,CAAQ,KAAA,EAAO,OAAO,CAAA;AAClC,EAAA,GAAA,CAAI,MAAA,IAAU,YAAA,EAAc,MAAM,IAAI,KAAA,CAAM,4BAA4B,CAAA;AACxE,EAAA,IAAI,MAAA,EAAQ,OAAA,CAAQ,KAAA,EAAO,OAAO,CAAA;AAClC,EAAA,GAAA,CAAI,MAAA,IAAU,YAAA,EAAc,MAAM,IAAI,KAAA,CAAM,4BAA4B,CAAA;AAExE,EAAA,IAAI,UAAA,EAAY,sCAAA,sCAAY,KAAiB,CAAC,CAAA,CAAE,QAAA;AAChD,EAAA,IAAI,UAAA,EAAY,sCAAA,sCAAY,KAAiB,CAAC,CAAA,CAAE,QAAA;AAEhD,EAAA,IAAA,CAAA,IAAS,EAAA,EAAI,CAAA,EAAG,EAAA,EAAI,SAAA,CAAU,MAAA,EAAQ,CAAA,EAAA,EAAK;AACzC,IAAA,IAAI,SAAA,EAAW,SAAA,CAAU,CAAC,CAAA,CAAE,QAAA,CAAS,WAAA;AACrC,IAAA,GAAA,CAAI,CAAC,SAAA,CAAU,CAAC,CAAA,EAAG,KAAA;AACnB,IAAA,IAAI,SAAA,EAAW,SAAA,CAAU,CAAC,CAAA,CAAE,QAAA,CAAS,WAAA;AACrC,IAAA,GAAA,CAAI,CAAC,UAAA,CAAW,QAAA,EAAU,QAAQ,CAAA,EAAG,OAAO,KAAA;AAAA,EAC9C;AACA,EAAA,OAAO,IAAA;AACT;AAUA,SAAS,UAAA,CAAW,QAAA,EAAsB,QAAA,EAAsB;AAC9D,EAAA,IAAI,OAAA,EAAS,uCAAA,wCAAiB,QAAa,CAAS,CAAC,CAAA,EAAG,QAAA,CAAS,CAAC,CAAC,CAAC,CAAA;AACpE,EAAA,IAAI,OAAA,EAAS,uCAAA,wCAAiB,QAAa,CAAS,CAAC,CAAA,EAAG,QAAA,CAAS,CAAC,CAAC,CAAC,CAAA;AACpE,EAAA,OAAO,OAAA,IAAW,OAAA,GAAA,CAAW,OAAA,EAAS,MAAA,EAAA,EAAU,IAAA,IAAQ,CAAA;AAC1D;AAUA,SAAS,OAAA,CAAQ,OAAA,EAAkC,IAAA,EAAc;AAC/D,EAAA,GAAA,CAAK,OAAA,CAAoB,SAAA,GAAa,OAAA,CAAoB,QAAA,CAAS,IAAA;AACjE,IAAA,OAAQ,OAAA,CAAoB,QAAA,CAAS,IAAA;AACvC,EAAA,GAAA,CAAI,OAAA,CAAQ,IAAA,EAAM,OAAO,OAAA,CAAQ,IAAA;AACjC,EAAA,MAAM,IAAI,KAAA,CAAM,8BAAA,EAAgC,IAAI,CAAA;AACtD;AAGA,IAAO,8BAAA,EAAQ,eAAA;ADxCf;AACE;AACA;AACF,2FAAC","file":"/home/runner/work/turf/turf/packages/turf-boolean-parallel/dist/cjs/index.cjs","sourcesContent":[null,"import { Feature, Geometry, LineString, Position } from \"geojson\";\nimport { cleanCoords } from \"@turf/clean-coords\";\nimport { lineSegment } from \"@turf/line-segment\";\nimport { rhumbBearing } from \"@turf/rhumb-bearing\";\nimport { bearingToAzimuth } from \"@turf/helpers\";\n\n/**\n * Boolean-Parallel returns True if each segment of `line1` is parallel to the correspondent segment of `line2`\n *\n * @function\n * @param {Geometry|Feature<LineString>} line1 GeoJSON Feature or Geometry\n * @param {Geometry|Feature<LineString>} line2 GeoJSON Feature or Geometry\n * @returns {boolean} true/false if the lines are parallel\n * @example\n * var line1 = turf.lineString([[0, 0], [0, 1]]);\n * var line2 = turf.lineString([[1, 0], [1, 1]]);\n *\n * turf.booleanParallel(line1, line2);\n * //=true\n */\nfunction booleanParallel(\n line1: Feature<LineString> | LineString,\n line2: Feature<LineString> | LineString\n): boolean {\n // validation\n if (!line1) throw new Error(\"line1 is required\");\n if (!line2) throw new Error(\"line2 is required\");\n var type1 = getType(line1, \"line1\");\n if (type1 !== \"LineString\") throw new Error(\"line1 must be a LineString\");\n var type2 = getType(line2, \"line2\");\n if (type2 !== \"LineString\") throw new Error(\"line2 must be a LineString\");\n\n var segments1 = lineSegment(cleanCoords(line1)).features;\n var segments2 = lineSegment(cleanCoords(line2)).features;\n\n for (var i = 0; i < segments1.length; i++) {\n var segment1 = segments1[i].geometry.coordinates;\n if (!segments2[i]) break;\n var segment2 = segments2[i].geometry.coordinates;\n if (!isParallel(segment1, segment2)) return false;\n }\n return true;\n}\n\n/**\n * Compares slopes and return result\n *\n * @private\n * @param {Geometry|Feature<LineString>} segment1 Geometry or Feature\n * @param {Geometry|Feature<LineString>} segment2 Geometry or Feature\n * @returns {boolean} if slopes are equal\n */\nfunction isParallel(segment1: Position[], segment2: Position[]) {\n var slope1 = bearingToAzimuth(rhumbBearing(segment1[0], segment1[1]));\n var slope2 = bearingToAzimuth(rhumbBearing(segment2[0], segment2[1]));\n return slope1 === slope2 || (slope2 - slope1) % 180 === 0;\n}\n\n/**\n * Returns Feature's type\n *\n * @private\n * @param {Geometry|Feature<any>} geojson Geometry or Feature\n * @param {string} name of the variable\n * @returns {string} Feature's type\n */\nfunction getType(geojson: Geometry | Feature<any>, name: string) {\n if ((geojson as Feature).geometry && (geojson as Feature).geometry.type)\n return (geojson as Feature).geometry.type;\n if (geojson.type) return geojson.type; // if GeoJSON geometry\n throw new Error(\"Invalid GeoJSON object for \" + name);\n}\n\nexport { booleanParallel };\nexport default booleanParallel;\n"]}
@@ -3,7 +3,7 @@ import { Feature, LineString } from 'geojson';
3
3
  /**
4
4
  * Boolean-Parallel returns True if each segment of `line1` is parallel to the correspondent segment of `line2`
5
5
  *
6
- * @name booleanParallel
6
+ * @function
7
7
  * @param {Geometry|Feature<LineString>} line1 GeoJSON Feature or Geometry
8
8
  * @param {Geometry|Feature<LineString>} line2 GeoJSON Feature or Geometry
9
9
  * @returns {boolean} true/false if the lines are parallel
@@ -3,7 +3,7 @@ import { Feature, LineString } from 'geojson';
3
3
  /**
4
4
  * Boolean-Parallel returns True if each segment of `line1` is parallel to the correspondent segment of `line2`
5
5
  *
6
- * @name booleanParallel
6
+ * @function
7
7
  * @param {Geometry|Feature<LineString>} line1 GeoJSON Feature or Geometry
8
8
  * @param {Geometry|Feature<LineString>} line2 GeoJSON Feature or Geometry
9
9
  * @returns {boolean} true/false if the lines are parallel
package/dist/esm/index.js CHANGED
@@ -4,25 +4,19 @@ import { lineSegment } from "@turf/line-segment";
4
4
  import { rhumbBearing } from "@turf/rhumb-bearing";
5
5
  import { bearingToAzimuth } from "@turf/helpers";
6
6
  function booleanParallel(line1, line2) {
7
- if (!line1)
8
- throw new Error("line1 is required");
9
- if (!line2)
10
- throw new Error("line2 is required");
7
+ if (!line1) throw new Error("line1 is required");
8
+ if (!line2) throw new Error("line2 is required");
11
9
  var type1 = getType(line1, "line1");
12
- if (type1 !== "LineString")
13
- throw new Error("line1 must be a LineString");
10
+ if (type1 !== "LineString") throw new Error("line1 must be a LineString");
14
11
  var type2 = getType(line2, "line2");
15
- if (type2 !== "LineString")
16
- throw new Error("line2 must be a LineString");
12
+ if (type2 !== "LineString") throw new Error("line2 must be a LineString");
17
13
  var segments1 = lineSegment(cleanCoords(line1)).features;
18
14
  var segments2 = lineSegment(cleanCoords(line2)).features;
19
15
  for (var i = 0; i < segments1.length; i++) {
20
16
  var segment1 = segments1[i].geometry.coordinates;
21
- if (!segments2[i])
22
- break;
17
+ if (!segments2[i]) break;
23
18
  var segment2 = segments2[i].geometry.coordinates;
24
- if (!isParallel(segment1, segment2))
25
- return false;
19
+ if (!isParallel(segment1, segment2)) return false;
26
20
  }
27
21
  return true;
28
22
  }
@@ -34,8 +28,7 @@ function isParallel(segment1, segment2) {
34
28
  function getType(geojson, name) {
35
29
  if (geojson.geometry && geojson.geometry.type)
36
30
  return geojson.geometry.type;
37
- if (geojson.type)
38
- return geojson.type;
31
+ if (geojson.type) return geojson.type;
39
32
  throw new Error("Invalid GeoJSON object for " + name);
40
33
  }
41
34
  var turf_boolean_parallel_default = booleanParallel;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../index.ts"],"sourcesContent":["import { Feature, Geometry, LineString, Position } from \"geojson\";\nimport { cleanCoords } from \"@turf/clean-coords\";\nimport { lineSegment } from \"@turf/line-segment\";\nimport { rhumbBearing } from \"@turf/rhumb-bearing\";\nimport { bearingToAzimuth } from \"@turf/helpers\";\n\n/**\n * Boolean-Parallel returns True if each segment of `line1` is parallel to the correspondent segment of `line2`\n *\n * @name booleanParallel\n * @param {Geometry|Feature<LineString>} line1 GeoJSON Feature or Geometry\n * @param {Geometry|Feature<LineString>} line2 GeoJSON Feature or Geometry\n * @returns {boolean} true/false if the lines are parallel\n * @example\n * var line1 = turf.lineString([[0, 0], [0, 1]]);\n * var line2 = turf.lineString([[1, 0], [1, 1]]);\n *\n * turf.booleanParallel(line1, line2);\n * //=true\n */\nfunction booleanParallel(\n line1: Feature<LineString> | LineString,\n line2: Feature<LineString> | LineString\n): boolean {\n // validation\n if (!line1) throw new Error(\"line1 is required\");\n if (!line2) throw new Error(\"line2 is required\");\n var type1 = getType(line1, \"line1\");\n if (type1 !== \"LineString\") throw new Error(\"line1 must be a LineString\");\n var type2 = getType(line2, \"line2\");\n if (type2 !== \"LineString\") throw new Error(\"line2 must be a LineString\");\n\n var segments1 = lineSegment(cleanCoords(line1)).features;\n var segments2 = lineSegment(cleanCoords(line2)).features;\n\n for (var i = 0; i < segments1.length; i++) {\n var segment1 = segments1[i].geometry.coordinates;\n if (!segments2[i]) break;\n var segment2 = segments2[i].geometry.coordinates;\n if (!isParallel(segment1, segment2)) return false;\n }\n return true;\n}\n\n/**\n * Compares slopes and return result\n *\n * @private\n * @param {Geometry|Feature<LineString>} segment1 Geometry or Feature\n * @param {Geometry|Feature<LineString>} segment2 Geometry or Feature\n * @returns {boolean} if slopes are equal\n */\nfunction isParallel(segment1: Position[], segment2: Position[]) {\n var slope1 = bearingToAzimuth(rhumbBearing(segment1[0], segment1[1]));\n var slope2 = bearingToAzimuth(rhumbBearing(segment2[0], segment2[1]));\n return slope1 === slope2 || (slope2 - slope1) % 180 === 0;\n}\n\n/**\n * Returns Feature's type\n *\n * @private\n * @param {Geometry|Feature<any>} geojson Geometry or Feature\n * @param {string} name of the variable\n * @returns {string} Feature's type\n */\nfunction getType(geojson: Geometry | Feature<any>, name: string) {\n if ((geojson as Feature).geometry && (geojson as Feature).geometry.type)\n return (geojson as Feature).geometry.type;\n if (geojson.type) return geojson.type; // if GeoJSON geometry\n throw new Error(\"Invalid GeoJSON object for \" + name);\n}\n\nexport { booleanParallel };\nexport default booleanParallel;\n"],"mappings":";AACA,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB;AAC5B,SAAS,oBAAoB;AAC7B,SAAS,wBAAwB;AAgBjC,SAAS,gBACP,OACA,OACS;AAET,MAAI,CAAC;AAAO,UAAM,IAAI,MAAM,mBAAmB;AAC/C,MAAI,CAAC;AAAO,UAAM,IAAI,MAAM,mBAAmB;AAC/C,MAAI,QAAQ,QAAQ,OAAO,OAAO;AAClC,MAAI,UAAU;AAAc,UAAM,IAAI,MAAM,4BAA4B;AACxE,MAAI,QAAQ,QAAQ,OAAO,OAAO;AAClC,MAAI,UAAU;AAAc,UAAM,IAAI,MAAM,4BAA4B;AAExE,MAAI,YAAY,YAAY,YAAY,KAAK,CAAC,EAAE;AAChD,MAAI,YAAY,YAAY,YAAY,KAAK,CAAC,EAAE;AAEhD,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACzC,QAAI,WAAW,UAAU,CAAC,EAAE,SAAS;AACrC,QAAI,CAAC,UAAU,CAAC;AAAG;AACnB,QAAI,WAAW,UAAU,CAAC,EAAE,SAAS;AACrC,QAAI,CAAC,WAAW,UAAU,QAAQ;AAAG,aAAO;AAAA,EAC9C;AACA,SAAO;AACT;AAUA,SAAS,WAAW,UAAsB,UAAsB;AAC9D,MAAI,SAAS,iBAAiB,aAAa,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;AACpE,MAAI,SAAS,iBAAiB,aAAa,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;AACpE,SAAO,WAAW,WAAW,SAAS,UAAU,QAAQ;AAC1D;AAUA,SAAS,QAAQ,SAAkC,MAAc;AAC/D,MAAK,QAAoB,YAAa,QAAoB,SAAS;AACjE,WAAQ,QAAoB,SAAS;AACvC,MAAI,QAAQ;AAAM,WAAO,QAAQ;AACjC,QAAM,IAAI,MAAM,gCAAgC,IAAI;AACtD;AAGA,IAAO,gCAAQ;","names":[]}
1
+ {"version":3,"sources":["../../index.ts"],"sourcesContent":["import { Feature, Geometry, LineString, Position } from \"geojson\";\nimport { cleanCoords } from \"@turf/clean-coords\";\nimport { lineSegment } from \"@turf/line-segment\";\nimport { rhumbBearing } from \"@turf/rhumb-bearing\";\nimport { bearingToAzimuth } from \"@turf/helpers\";\n\n/**\n * Boolean-Parallel returns True if each segment of `line1` is parallel to the correspondent segment of `line2`\n *\n * @function\n * @param {Geometry|Feature<LineString>} line1 GeoJSON Feature or Geometry\n * @param {Geometry|Feature<LineString>} line2 GeoJSON Feature or Geometry\n * @returns {boolean} true/false if the lines are parallel\n * @example\n * var line1 = turf.lineString([[0, 0], [0, 1]]);\n * var line2 = turf.lineString([[1, 0], [1, 1]]);\n *\n * turf.booleanParallel(line1, line2);\n * //=true\n */\nfunction booleanParallel(\n line1: Feature<LineString> | LineString,\n line2: Feature<LineString> | LineString\n): boolean {\n // validation\n if (!line1) throw new Error(\"line1 is required\");\n if (!line2) throw new Error(\"line2 is required\");\n var type1 = getType(line1, \"line1\");\n if (type1 !== \"LineString\") throw new Error(\"line1 must be a LineString\");\n var type2 = getType(line2, \"line2\");\n if (type2 !== \"LineString\") throw new Error(\"line2 must be a LineString\");\n\n var segments1 = lineSegment(cleanCoords(line1)).features;\n var segments2 = lineSegment(cleanCoords(line2)).features;\n\n for (var i = 0; i < segments1.length; i++) {\n var segment1 = segments1[i].geometry.coordinates;\n if (!segments2[i]) break;\n var segment2 = segments2[i].geometry.coordinates;\n if (!isParallel(segment1, segment2)) return false;\n }\n return true;\n}\n\n/**\n * Compares slopes and return result\n *\n * @private\n * @param {Geometry|Feature<LineString>} segment1 Geometry or Feature\n * @param {Geometry|Feature<LineString>} segment2 Geometry or Feature\n * @returns {boolean} if slopes are equal\n */\nfunction isParallel(segment1: Position[], segment2: Position[]) {\n var slope1 = bearingToAzimuth(rhumbBearing(segment1[0], segment1[1]));\n var slope2 = bearingToAzimuth(rhumbBearing(segment2[0], segment2[1]));\n return slope1 === slope2 || (slope2 - slope1) % 180 === 0;\n}\n\n/**\n * Returns Feature's type\n *\n * @private\n * @param {Geometry|Feature<any>} geojson Geometry or Feature\n * @param {string} name of the variable\n * @returns {string} Feature's type\n */\nfunction getType(geojson: Geometry | Feature<any>, name: string) {\n if ((geojson as Feature).geometry && (geojson as Feature).geometry.type)\n return (geojson as Feature).geometry.type;\n if (geojson.type) return geojson.type; // if GeoJSON geometry\n throw new Error(\"Invalid GeoJSON object for \" + name);\n}\n\nexport { booleanParallel };\nexport default booleanParallel;\n"],"mappings":";AACA,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB;AAC5B,SAAS,oBAAoB;AAC7B,SAAS,wBAAwB;AAgBjC,SAAS,gBACP,OACA,OACS;AAET,MAAI,CAAC,MAAO,OAAM,IAAI,MAAM,mBAAmB;AAC/C,MAAI,CAAC,MAAO,OAAM,IAAI,MAAM,mBAAmB;AAC/C,MAAI,QAAQ,QAAQ,OAAO,OAAO;AAClC,MAAI,UAAU,aAAc,OAAM,IAAI,MAAM,4BAA4B;AACxE,MAAI,QAAQ,QAAQ,OAAO,OAAO;AAClC,MAAI,UAAU,aAAc,OAAM,IAAI,MAAM,4BAA4B;AAExE,MAAI,YAAY,YAAY,YAAY,KAAK,CAAC,EAAE;AAChD,MAAI,YAAY,YAAY,YAAY,KAAK,CAAC,EAAE;AAEhD,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACzC,QAAI,WAAW,UAAU,CAAC,EAAE,SAAS;AACrC,QAAI,CAAC,UAAU,CAAC,EAAG;AACnB,QAAI,WAAW,UAAU,CAAC,EAAE,SAAS;AACrC,QAAI,CAAC,WAAW,UAAU,QAAQ,EAAG,QAAO;AAAA,EAC9C;AACA,SAAO;AACT;AAUA,SAAS,WAAW,UAAsB,UAAsB;AAC9D,MAAI,SAAS,iBAAiB,aAAa,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;AACpE,MAAI,SAAS,iBAAiB,aAAa,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;AACpE,SAAO,WAAW,WAAW,SAAS,UAAU,QAAQ;AAC1D;AAUA,SAAS,QAAQ,SAAkC,MAAc;AAC/D,MAAK,QAAoB,YAAa,QAAoB,SAAS;AACjE,WAAQ,QAAoB,SAAS;AACvC,MAAI,QAAQ,KAAM,QAAO,QAAQ;AACjC,QAAM,IAAI,MAAM,gCAAgC,IAAI;AACtD;AAGA,IAAO,gCAAQ;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@turf/boolean-parallel",
3
- "version": "7.1.0",
3
+ "version": "7.2.0",
4
4
  "description": "turf boolean-parallel module",
5
5
  "author": "Turf Authors",
6
6
  "contributors": [
@@ -55,23 +55,23 @@
55
55
  },
56
56
  "devDependencies": {
57
57
  "@types/benchmark": "^2.1.5",
58
- "@types/tape": "^4.2.32",
58
+ "@types/tape": "^4.13.4",
59
59
  "benchmark": "^2.1.4",
60
60
  "load-json-file": "^7.0.1",
61
61
  "npm-run-all": "^4.1.5",
62
- "tape": "^5.7.2",
63
- "tsup": "^8.0.1",
64
- "tsx": "^4.6.2",
65
- "typescript": "^5.2.2",
62
+ "tape": "^5.9.0",
63
+ "tsup": "^8.3.5",
64
+ "tsx": "^4.19.2",
65
+ "typescript": "^5.5.4",
66
66
  "write-json-file": "^5.0.0"
67
67
  },
68
68
  "dependencies": {
69
- "@turf/clean-coords": "^7.1.0",
70
- "@turf/helpers": "^7.1.0",
71
- "@turf/line-segment": "^7.1.0",
72
- "@turf/rhumb-bearing": "^7.1.0",
69
+ "@turf/clean-coords": "^7.2.0",
70
+ "@turf/helpers": "^7.2.0",
71
+ "@turf/line-segment": "^7.2.0",
72
+ "@turf/rhumb-bearing": "^7.2.0",
73
73
  "@types/geojson": "^7946.0.10",
74
- "tslib": "^2.6.2"
74
+ "tslib": "^2.8.1"
75
75
  },
76
- "gitHead": "68915eeebc9278bb40dec3f1034499698a0561ef"
76
+ "gitHead": "7b0f0374c4668cd569f8904c71e2ae7d941be867"
77
77
  }