@turf/line-segment 7.1.0 → 7.3.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.
@@ -53,9 +53,9 @@ function bbox(coords1, coords2) {
53
53
  const north = y1 > y2 ? y1 : y2;
54
54
  return [west, south, east, north];
55
55
  }
56
- var turf_line_segment_default = lineSegment;
56
+ var index_default = lineSegment;
57
57
 
58
58
 
59
59
 
60
- exports.default = turf_line_segment_default; exports.lineSegment = lineSegment;
60
+ exports.default = index_default; exports.lineSegment = lineSegment;
61
61
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../index.ts"],"names":[],"mappings":";AASA,SAAS,mBAAmB,kBAAkB;AAC9C,SAAS,iBAAiB;AAC1B,SAAS,mBAAmB;AAgB5B,SAAS,YAGP,SAC+B;AAC/B,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,qBAAqB;AAAA,EACvC;AAEA,QAAM,UAAsC,CAAC;AAC7C,cAAY,SAAS,CAAC,YAA0B;AAC9C,uBAAmB,SAAS,OAAO;AAAA,EACrC,CAAC;AACD,SAAO,kBAAkB,OAAO;AAClC;AAUA,SAAS,mBACP,SACA,SACA;AACA,MAAI,SAAuB,CAAC;AAC5B,QAAM,WAAW,QAAQ;AACzB,MAAI,aAAa,MAAM;AACrB,YAAQ,SAAS,MAAM;AAAA,MACrB,KAAK;AACH,iBAAS,UAAU,QAAQ;AAC3B;AAAA,MACF,KAAK;AACH,iBAAS,CAAC,UAAU,QAAQ,CAAC;AAAA,IACjC;AACA,WAAO,QAAQ,CAAC,UAAU;AACxB,YAAM,WAAW,eAAe,OAAO,QAAQ,UAAU;AACzD,eAAS,QAAQ,CAAC,YAAY;AAC5B,gBAAQ,KAAK,QAAQ;AACrB,gBAAQ,KAAK,OAAO;AAAA,MACtB,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;AAUA,SAAS,eAAe,QAAoB,YAAiB;AAC3D,QAAM,WAAuC,CAAC;AAC9C,SAAO,OAAO,CAAC,gBAAgB,kBAAkB;AAC/C,UAAM,UAAU,WAAW,CAAC,gBAAgB,aAAa,GAAG,UAAU;AACtE,YAAQ,OAAO,KAAK,gBAAgB,aAAa;AACjD,aAAS,KAAK,OAAO;AACrB,WAAO;AAAA,EACT,CAAC;AACD,SAAO;AACT;AAUA,SAAS,KAAK,SAAmB,SAAyB;AACxD,QAAM,KAAK,QAAQ,CAAC;AACpB,QAAM,KAAK,QAAQ,CAAC;AACpB,QAAM,KAAK,QAAQ,CAAC;AACpB,QAAM,KAAK,QAAQ,CAAC;AACpB,QAAM,OAAO,KAAK,KAAK,KAAK;AAC5B,QAAM,QAAQ,KAAK,KAAK,KAAK;AAC7B,QAAM,OAAO,KAAK,KAAK,KAAK;AAC5B,QAAM,QAAQ,KAAK,KAAK,KAAK;AAC7B,SAAO,CAAC,MAAM,OAAO,MAAM,KAAK;AAClC;AAGA,IAAO,4BAAQ","sourcesContent":["import {\n BBox,\n Feature,\n FeatureCollection,\n LineString,\n MultiLineString,\n MultiPolygon,\n Polygon,\n} from \"geojson\";\nimport { featureCollection, lineString } from \"@turf/helpers\";\nimport { getCoords } from \"@turf/invariant\";\nimport { flattenEach } from \"@turf/meta\";\n\n/**\n * Creates a {@link FeatureCollection} of 2-vertex {@link LineString} segments from a\n * {@link LineString|(Multi)LineString} or {@link Polygon|(Multi)Polygon}.\n *\n * @name lineSegment\n * @param {GeoJSON} geojson GeoJSON Polygon or LineString\n * @returns {FeatureCollection<LineString>} 2-vertex line segments\n * @example\n * var polygon = turf.polygon([[[-50, 5], [-40, -10], [-50, -10], [-40, 5], [-50, 5]]]);\n * var segments = turf.lineSegment(polygon);\n *\n * //addToMap\n * var addToMap = [polygon, segments]\n */\nfunction lineSegment<\n G extends LineString | MultiLineString | Polygon | MultiPolygon,\n>(\n geojson: Feature<G> | FeatureCollection<G> | G\n): FeatureCollection<LineString> {\n if (!geojson) {\n throw new Error(\"geojson is required\");\n }\n\n const results: Array<Feature<LineString>> = [];\n flattenEach(geojson, (feature: Feature<any>) => {\n lineSegmentFeature(feature, results);\n });\n return featureCollection(results);\n}\n\n/**\n * Line Segment\n *\n * @private\n * @param {Feature<LineString|Polygon>} geojson Line or polygon feature\n * @param {Array} results push to results\n * @returns {void}\n */\nfunction lineSegmentFeature(\n geojson: Feature<LineString | Polygon>,\n results: Array<Feature<LineString>>\n) {\n let coords: number[][][] = [];\n const geometry = geojson.geometry;\n if (geometry !== null) {\n switch (geometry.type) {\n case \"Polygon\":\n coords = getCoords(geometry);\n break;\n case \"LineString\":\n coords = [getCoords(geometry)];\n }\n coords.forEach((coord) => {\n const segments = createSegments(coord, geojson.properties);\n segments.forEach((segment) => {\n segment.id = results.length;\n results.push(segment);\n });\n });\n }\n}\n\n/**\n * Create Segments from LineString coordinates\n *\n * @private\n * @param {Array<Array<number>>} coords LineString coordinates\n * @param {*} properties GeoJSON properties\n * @returns {Array<Feature<LineString>>} line segments\n */\nfunction createSegments(coords: number[][], properties: any) {\n const segments: Array<Feature<LineString>> = [];\n coords.reduce((previousCoords, currentCoords) => {\n const segment = lineString([previousCoords, currentCoords], properties);\n segment.bbox = bbox(previousCoords, currentCoords);\n segments.push(segment);\n return currentCoords;\n });\n return segments;\n}\n\n/**\n * Create BBox between two coordinates (faster than @turf/bbox)\n *\n * @private\n * @param {Array<number>} coords1 Point coordinate\n * @param {Array<number>} coords2 Point coordinate\n * @returns {BBox} [west, south, east, north]\n */\nfunction bbox(coords1: number[], coords2: number[]): BBox {\n const x1 = coords1[0];\n const y1 = coords1[1];\n const x2 = coords2[0];\n const y2 = coords2[1];\n const west = x1 < x2 ? x1 : x2;\n const south = y1 < y2 ? y1 : y2;\n const east = x1 > x2 ? x1 : x2;\n const north = y1 > y2 ? y1 : y2;\n return [west, south, east, north];\n}\n\nexport { lineSegment };\nexport default lineSegment;\n"]}
1
+ {"version":3,"sources":["/home/runner/work/turf/turf/packages/turf-line-segment/dist/cjs/index.cjs","../../index.ts"],"names":[],"mappings":"AAAA;ACSA,wCAA8C;AAC9C,4CAA0B;AAC1B,kCAA4B;AAgB5B,SAAS,WAAA,CAGP,OAAA,EAC+B;AAC/B,EAAA,GAAA,CAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,IAAI,KAAA,CAAM,qBAAqB,CAAA;AAAA,EACvC;AAEA,EAAA,MAAM,QAAA,EAAsC,CAAC,CAAA;AAC7C,EAAA,+BAAA,OAAY,EAAS,CAAC,OAAA,EAAA,GAA0B;AAC9C,IAAA,kBAAA,CAAmB,OAAA,EAAS,OAAO,CAAA;AAAA,EACrC,CAAC,CAAA;AACD,EAAA,OAAO,wCAAA,OAAyB,CAAA;AAClC;AAUA,SAAS,kBAAA,CACP,OAAA,EACA,OAAA,EACA;AACA,EAAA,IAAI,OAAA,EAAuB,CAAC,CAAA;AAC5B,EAAA,MAAM,SAAA,EAAW,OAAA,CAAQ,QAAA;AACzB,EAAA,GAAA,CAAI,SAAA,IAAa,IAAA,EAAM;AACrB,IAAA,OAAA,CAAQ,QAAA,CAAS,IAAA,EAAM;AAAA,MACrB,KAAK,SAAA;AACH,QAAA,OAAA,EAAS,kCAAA,QAAkB,CAAA;AAC3B,QAAA,KAAA;AAAA,MACF,KAAK,YAAA;AACH,QAAA,OAAA,EAAS,CAAC,kCAAA,QAAkB,CAAC,CAAA;AAAA,IACjC;AACA,IAAA,MAAA,CAAO,OAAA,CAAQ,CAAC,KAAA,EAAA,GAAU;AACxB,MAAA,MAAM,SAAA,EAAW,cAAA,CAAe,KAAA,EAAO,OAAA,CAAQ,UAAU,CAAA;AACzD,MAAA,QAAA,CAAS,OAAA,CAAQ,CAAC,OAAA,EAAA,GAAY;AAC5B,QAAA,OAAA,CAAQ,GAAA,EAAK,OAAA,CAAQ,MAAA;AACrB,QAAA,OAAA,CAAQ,IAAA,CAAK,OAAO,CAAA;AAAA,MACtB,CAAC,CAAA;AAAA,IACH,CAAC,CAAA;AAAA,EACH;AACF;AAUA,SAAS,cAAA,CAAe,MAAA,EAAoB,UAAA,EAAiB;AAC3D,EAAA,MAAM,SAAA,EAAuC,CAAC,CAAA;AAC9C,EAAA,MAAA,CAAO,MAAA,CAAO,CAAC,cAAA,EAAgB,aAAA,EAAA,GAAkB;AAC/C,IAAA,MAAM,QAAA,EAAU,iCAAA,CAAY,cAAA,EAAgB,aAAa,CAAA,EAAG,UAAU,CAAA;AACtE,IAAA,OAAA,CAAQ,KAAA,EAAO,IAAA,CAAK,cAAA,EAAgB,aAAa,CAAA;AACjD,IAAA,QAAA,CAAS,IAAA,CAAK,OAAO,CAAA;AACrB,IAAA,OAAO,aAAA;AAAA,EACT,CAAC,CAAA;AACD,EAAA,OAAO,QAAA;AACT;AAUA,SAAS,IAAA,CAAK,OAAA,EAAmB,OAAA,EAAyB;AACxD,EAAA,MAAM,GAAA,EAAK,OAAA,CAAQ,CAAC,CAAA;AACpB,EAAA,MAAM,GAAA,EAAK,OAAA,CAAQ,CAAC,CAAA;AACpB,EAAA,MAAM,GAAA,EAAK,OAAA,CAAQ,CAAC,CAAA;AACpB,EAAA,MAAM,GAAA,EAAK,OAAA,CAAQ,CAAC,CAAA;AACpB,EAAA,MAAM,KAAA,EAAO,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA;AAC5B,EAAA,MAAM,MAAA,EAAQ,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA;AAC7B,EAAA,MAAM,KAAA,EAAO,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA;AAC5B,EAAA,MAAM,MAAA,EAAQ,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA;AAC7B,EAAA,OAAO,CAAC,IAAA,EAAM,KAAA,EAAO,IAAA,EAAM,KAAK,CAAA;AAClC;AAGA,IAAO,cAAA,EAAQ,WAAA;AD3Df;AACE;AACA;AACF,mEAAC","file":"/home/runner/work/turf/turf/packages/turf-line-segment/dist/cjs/index.cjs","sourcesContent":[null,"import {\n BBox,\n Feature,\n FeatureCollection,\n LineString,\n MultiLineString,\n MultiPolygon,\n Polygon,\n} from \"geojson\";\nimport { featureCollection, lineString } from \"@turf/helpers\";\nimport { getCoords } from \"@turf/invariant\";\nimport { flattenEach } from \"@turf/meta\";\n\n/**\n * Creates a {@link FeatureCollection} of 2-vertex {@link LineString} segments from a\n * {@link LineString|(Multi)LineString} or {@link Polygon|(Multi)Polygon}.\n *\n * @function\n * @param {GeoJSON} geojson GeoJSON Polygon or LineString\n * @returns {FeatureCollection<LineString>} 2-vertex line segments\n * @example\n * var polygon = turf.polygon([[[-50, 5], [-40, -10], [-50, -10], [-40, 5], [-50, 5]]]);\n * var segments = turf.lineSegment(polygon);\n *\n * //addToMap\n * var addToMap = [polygon, segments]\n */\nfunction lineSegment<\n G extends LineString | MultiLineString | Polygon | MultiPolygon,\n>(\n geojson: Feature<G> | FeatureCollection<G> | G\n): FeatureCollection<LineString> {\n if (!geojson) {\n throw new Error(\"geojson is required\");\n }\n\n const results: Array<Feature<LineString>> = [];\n flattenEach(geojson, (feature: Feature<any>) => {\n lineSegmentFeature(feature, results);\n });\n return featureCollection(results);\n}\n\n/**\n * Line Segment\n *\n * @private\n * @param {Feature<LineString|Polygon>} geojson Line or polygon feature\n * @param {Array} results push to results\n * @returns {void}\n */\nfunction lineSegmentFeature(\n geojson: Feature<LineString | Polygon>,\n results: Array<Feature<LineString>>\n) {\n let coords: number[][][] = [];\n const geometry = geojson.geometry;\n if (geometry !== null) {\n switch (geometry.type) {\n case \"Polygon\":\n coords = getCoords(geometry);\n break;\n case \"LineString\":\n coords = [getCoords(geometry)];\n }\n coords.forEach((coord) => {\n const segments = createSegments(coord, geojson.properties);\n segments.forEach((segment) => {\n segment.id = results.length;\n results.push(segment);\n });\n });\n }\n}\n\n/**\n * Create Segments from LineString coordinates\n *\n * @private\n * @param {Array<Array<number>>} coords LineString coordinates\n * @param {*} properties GeoJSON properties\n * @returns {Array<Feature<LineString>>} line segments\n */\nfunction createSegments(coords: number[][], properties: any) {\n const segments: Array<Feature<LineString>> = [];\n coords.reduce((previousCoords, currentCoords) => {\n const segment = lineString([previousCoords, currentCoords], properties);\n segment.bbox = bbox(previousCoords, currentCoords);\n segments.push(segment);\n return currentCoords;\n });\n return segments;\n}\n\n/**\n * Create BBox between two coordinates (faster than @turf/bbox)\n *\n * @private\n * @param {Array<number>} coords1 Point coordinate\n * @param {Array<number>} coords2 Point coordinate\n * @returns {BBox} [west, south, east, north]\n */\nfunction bbox(coords1: number[], coords2: number[]): BBox {\n const x1 = coords1[0];\n const y1 = coords1[1];\n const x2 = coords2[0];\n const y2 = coords2[1];\n const west = x1 < x2 ? x1 : x2;\n const south = y1 < y2 ? y1 : y2;\n const east = x1 > x2 ? x1 : x2;\n const north = y1 > y2 ? y1 : y2;\n return [west, south, east, north];\n}\n\nexport { lineSegment };\nexport default lineSegment;\n"]}
@@ -4,7 +4,7 @@ import { LineString, MultiLineString, Polygon, MultiPolygon, Feature, FeatureCol
4
4
  * Creates a {@link FeatureCollection} of 2-vertex {@link LineString} segments from a
5
5
  * {@link LineString|(Multi)LineString} or {@link Polygon|(Multi)Polygon}.
6
6
  *
7
- * @name lineSegment
7
+ * @function
8
8
  * @param {GeoJSON} geojson GeoJSON Polygon or LineString
9
9
  * @returns {FeatureCollection<LineString>} 2-vertex line segments
10
10
  * @example
@@ -4,7 +4,7 @@ import { LineString, MultiLineString, Polygon, MultiPolygon, Feature, FeatureCol
4
4
  * Creates a {@link FeatureCollection} of 2-vertex {@link LineString} segments from a
5
5
  * {@link LineString|(Multi)LineString} or {@link Polygon|(Multi)Polygon}.
6
6
  *
7
- * @name lineSegment
7
+ * @function
8
8
  * @param {GeoJSON} geojson GeoJSON Polygon or LineString
9
9
  * @returns {FeatureCollection<LineString>} 2-vertex line segments
10
10
  * @example
package/dist/esm/index.js CHANGED
@@ -53,9 +53,9 @@ function bbox(coords1, coords2) {
53
53
  const north = y1 > y2 ? y1 : y2;
54
54
  return [west, south, east, north];
55
55
  }
56
- var turf_line_segment_default = lineSegment;
56
+ var index_default = lineSegment;
57
57
  export {
58
- turf_line_segment_default as default,
58
+ index_default as default,
59
59
  lineSegment
60
60
  };
61
61
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../index.ts"],"sourcesContent":["import {\n BBox,\n Feature,\n FeatureCollection,\n LineString,\n MultiLineString,\n MultiPolygon,\n Polygon,\n} from \"geojson\";\nimport { featureCollection, lineString } from \"@turf/helpers\";\nimport { getCoords } from \"@turf/invariant\";\nimport { flattenEach } from \"@turf/meta\";\n\n/**\n * Creates a {@link FeatureCollection} of 2-vertex {@link LineString} segments from a\n * {@link LineString|(Multi)LineString} or {@link Polygon|(Multi)Polygon}.\n *\n * @name lineSegment\n * @param {GeoJSON} geojson GeoJSON Polygon or LineString\n * @returns {FeatureCollection<LineString>} 2-vertex line segments\n * @example\n * var polygon = turf.polygon([[[-50, 5], [-40, -10], [-50, -10], [-40, 5], [-50, 5]]]);\n * var segments = turf.lineSegment(polygon);\n *\n * //addToMap\n * var addToMap = [polygon, segments]\n */\nfunction lineSegment<\n G extends LineString | MultiLineString | Polygon | MultiPolygon,\n>(\n geojson: Feature<G> | FeatureCollection<G> | G\n): FeatureCollection<LineString> {\n if (!geojson) {\n throw new Error(\"geojson is required\");\n }\n\n const results: Array<Feature<LineString>> = [];\n flattenEach(geojson, (feature: Feature<any>) => {\n lineSegmentFeature(feature, results);\n });\n return featureCollection(results);\n}\n\n/**\n * Line Segment\n *\n * @private\n * @param {Feature<LineString|Polygon>} geojson Line or polygon feature\n * @param {Array} results push to results\n * @returns {void}\n */\nfunction lineSegmentFeature(\n geojson: Feature<LineString | Polygon>,\n results: Array<Feature<LineString>>\n) {\n let coords: number[][][] = [];\n const geometry = geojson.geometry;\n if (geometry !== null) {\n switch (geometry.type) {\n case \"Polygon\":\n coords = getCoords(geometry);\n break;\n case \"LineString\":\n coords = [getCoords(geometry)];\n }\n coords.forEach((coord) => {\n const segments = createSegments(coord, geojson.properties);\n segments.forEach((segment) => {\n segment.id = results.length;\n results.push(segment);\n });\n });\n }\n}\n\n/**\n * Create Segments from LineString coordinates\n *\n * @private\n * @param {Array<Array<number>>} coords LineString coordinates\n * @param {*} properties GeoJSON properties\n * @returns {Array<Feature<LineString>>} line segments\n */\nfunction createSegments(coords: number[][], properties: any) {\n const segments: Array<Feature<LineString>> = [];\n coords.reduce((previousCoords, currentCoords) => {\n const segment = lineString([previousCoords, currentCoords], properties);\n segment.bbox = bbox(previousCoords, currentCoords);\n segments.push(segment);\n return currentCoords;\n });\n return segments;\n}\n\n/**\n * Create BBox between two coordinates (faster than @turf/bbox)\n *\n * @private\n * @param {Array<number>} coords1 Point coordinate\n * @param {Array<number>} coords2 Point coordinate\n * @returns {BBox} [west, south, east, north]\n */\nfunction bbox(coords1: number[], coords2: number[]): BBox {\n const x1 = coords1[0];\n const y1 = coords1[1];\n const x2 = coords2[0];\n const y2 = coords2[1];\n const west = x1 < x2 ? x1 : x2;\n const south = y1 < y2 ? y1 : y2;\n const east = x1 > x2 ? x1 : x2;\n const north = y1 > y2 ? y1 : y2;\n return [west, south, east, north];\n}\n\nexport { lineSegment };\nexport default lineSegment;\n"],"mappings":";AASA,SAAS,mBAAmB,kBAAkB;AAC9C,SAAS,iBAAiB;AAC1B,SAAS,mBAAmB;AAgB5B,SAAS,YAGP,SAC+B;AAC/B,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,qBAAqB;AAAA,EACvC;AAEA,QAAM,UAAsC,CAAC;AAC7C,cAAY,SAAS,CAAC,YAA0B;AAC9C,uBAAmB,SAAS,OAAO;AAAA,EACrC,CAAC;AACD,SAAO,kBAAkB,OAAO;AAClC;AAUA,SAAS,mBACP,SACA,SACA;AACA,MAAI,SAAuB,CAAC;AAC5B,QAAM,WAAW,QAAQ;AACzB,MAAI,aAAa,MAAM;AACrB,YAAQ,SAAS,MAAM;AAAA,MACrB,KAAK;AACH,iBAAS,UAAU,QAAQ;AAC3B;AAAA,MACF,KAAK;AACH,iBAAS,CAAC,UAAU,QAAQ,CAAC;AAAA,IACjC;AACA,WAAO,QAAQ,CAAC,UAAU;AACxB,YAAM,WAAW,eAAe,OAAO,QAAQ,UAAU;AACzD,eAAS,QAAQ,CAAC,YAAY;AAC5B,gBAAQ,KAAK,QAAQ;AACrB,gBAAQ,KAAK,OAAO;AAAA,MACtB,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;AAUA,SAAS,eAAe,QAAoB,YAAiB;AAC3D,QAAM,WAAuC,CAAC;AAC9C,SAAO,OAAO,CAAC,gBAAgB,kBAAkB;AAC/C,UAAM,UAAU,WAAW,CAAC,gBAAgB,aAAa,GAAG,UAAU;AACtE,YAAQ,OAAO,KAAK,gBAAgB,aAAa;AACjD,aAAS,KAAK,OAAO;AACrB,WAAO;AAAA,EACT,CAAC;AACD,SAAO;AACT;AAUA,SAAS,KAAK,SAAmB,SAAyB;AACxD,QAAM,KAAK,QAAQ,CAAC;AACpB,QAAM,KAAK,QAAQ,CAAC;AACpB,QAAM,KAAK,QAAQ,CAAC;AACpB,QAAM,KAAK,QAAQ,CAAC;AACpB,QAAM,OAAO,KAAK,KAAK,KAAK;AAC5B,QAAM,QAAQ,KAAK,KAAK,KAAK;AAC7B,QAAM,OAAO,KAAK,KAAK,KAAK;AAC5B,QAAM,QAAQ,KAAK,KAAK,KAAK;AAC7B,SAAO,CAAC,MAAM,OAAO,MAAM,KAAK;AAClC;AAGA,IAAO,4BAAQ;","names":[]}
1
+ {"version":3,"sources":["../../index.ts"],"sourcesContent":["import {\n BBox,\n Feature,\n FeatureCollection,\n LineString,\n MultiLineString,\n MultiPolygon,\n Polygon,\n} from \"geojson\";\nimport { featureCollection, lineString } from \"@turf/helpers\";\nimport { getCoords } from \"@turf/invariant\";\nimport { flattenEach } from \"@turf/meta\";\n\n/**\n * Creates a {@link FeatureCollection} of 2-vertex {@link LineString} segments from a\n * {@link LineString|(Multi)LineString} or {@link Polygon|(Multi)Polygon}.\n *\n * @function\n * @param {GeoJSON} geojson GeoJSON Polygon or LineString\n * @returns {FeatureCollection<LineString>} 2-vertex line segments\n * @example\n * var polygon = turf.polygon([[[-50, 5], [-40, -10], [-50, -10], [-40, 5], [-50, 5]]]);\n * var segments = turf.lineSegment(polygon);\n *\n * //addToMap\n * var addToMap = [polygon, segments]\n */\nfunction lineSegment<\n G extends LineString | MultiLineString | Polygon | MultiPolygon,\n>(\n geojson: Feature<G> | FeatureCollection<G> | G\n): FeatureCollection<LineString> {\n if (!geojson) {\n throw new Error(\"geojson is required\");\n }\n\n const results: Array<Feature<LineString>> = [];\n flattenEach(geojson, (feature: Feature<any>) => {\n lineSegmentFeature(feature, results);\n });\n return featureCollection(results);\n}\n\n/**\n * Line Segment\n *\n * @private\n * @param {Feature<LineString|Polygon>} geojson Line or polygon feature\n * @param {Array} results push to results\n * @returns {void}\n */\nfunction lineSegmentFeature(\n geojson: Feature<LineString | Polygon>,\n results: Array<Feature<LineString>>\n) {\n let coords: number[][][] = [];\n const geometry = geojson.geometry;\n if (geometry !== null) {\n switch (geometry.type) {\n case \"Polygon\":\n coords = getCoords(geometry);\n break;\n case \"LineString\":\n coords = [getCoords(geometry)];\n }\n coords.forEach((coord) => {\n const segments = createSegments(coord, geojson.properties);\n segments.forEach((segment) => {\n segment.id = results.length;\n results.push(segment);\n });\n });\n }\n}\n\n/**\n * Create Segments from LineString coordinates\n *\n * @private\n * @param {Array<Array<number>>} coords LineString coordinates\n * @param {*} properties GeoJSON properties\n * @returns {Array<Feature<LineString>>} line segments\n */\nfunction createSegments(coords: number[][], properties: any) {\n const segments: Array<Feature<LineString>> = [];\n coords.reduce((previousCoords, currentCoords) => {\n const segment = lineString([previousCoords, currentCoords], properties);\n segment.bbox = bbox(previousCoords, currentCoords);\n segments.push(segment);\n return currentCoords;\n });\n return segments;\n}\n\n/**\n * Create BBox between two coordinates (faster than @turf/bbox)\n *\n * @private\n * @param {Array<number>} coords1 Point coordinate\n * @param {Array<number>} coords2 Point coordinate\n * @returns {BBox} [west, south, east, north]\n */\nfunction bbox(coords1: number[], coords2: number[]): BBox {\n const x1 = coords1[0];\n const y1 = coords1[1];\n const x2 = coords2[0];\n const y2 = coords2[1];\n const west = x1 < x2 ? x1 : x2;\n const south = y1 < y2 ? y1 : y2;\n const east = x1 > x2 ? x1 : x2;\n const north = y1 > y2 ? y1 : y2;\n return [west, south, east, north];\n}\n\nexport { lineSegment };\nexport default lineSegment;\n"],"mappings":";AASA,SAAS,mBAAmB,kBAAkB;AAC9C,SAAS,iBAAiB;AAC1B,SAAS,mBAAmB;AAgB5B,SAAS,YAGP,SAC+B;AAC/B,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,qBAAqB;AAAA,EACvC;AAEA,QAAM,UAAsC,CAAC;AAC7C,cAAY,SAAS,CAAC,YAA0B;AAC9C,uBAAmB,SAAS,OAAO;AAAA,EACrC,CAAC;AACD,SAAO,kBAAkB,OAAO;AAClC;AAUA,SAAS,mBACP,SACA,SACA;AACA,MAAI,SAAuB,CAAC;AAC5B,QAAM,WAAW,QAAQ;AACzB,MAAI,aAAa,MAAM;AACrB,YAAQ,SAAS,MAAM;AAAA,MACrB,KAAK;AACH,iBAAS,UAAU,QAAQ;AAC3B;AAAA,MACF,KAAK;AACH,iBAAS,CAAC,UAAU,QAAQ,CAAC;AAAA,IACjC;AACA,WAAO,QAAQ,CAAC,UAAU;AACxB,YAAM,WAAW,eAAe,OAAO,QAAQ,UAAU;AACzD,eAAS,QAAQ,CAAC,YAAY;AAC5B,gBAAQ,KAAK,QAAQ;AACrB,gBAAQ,KAAK,OAAO;AAAA,MACtB,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;AAUA,SAAS,eAAe,QAAoB,YAAiB;AAC3D,QAAM,WAAuC,CAAC;AAC9C,SAAO,OAAO,CAAC,gBAAgB,kBAAkB;AAC/C,UAAM,UAAU,WAAW,CAAC,gBAAgB,aAAa,GAAG,UAAU;AACtE,YAAQ,OAAO,KAAK,gBAAgB,aAAa;AACjD,aAAS,KAAK,OAAO;AACrB,WAAO;AAAA,EACT,CAAC;AACD,SAAO;AACT;AAUA,SAAS,KAAK,SAAmB,SAAyB;AACxD,QAAM,KAAK,QAAQ,CAAC;AACpB,QAAM,KAAK,QAAQ,CAAC;AACpB,QAAM,KAAK,QAAQ,CAAC;AACpB,QAAM,KAAK,QAAQ,CAAC;AACpB,QAAM,OAAO,KAAK,KAAK,KAAK;AAC5B,QAAM,QAAQ,KAAK,KAAK,KAAK;AAC7B,QAAM,OAAO,KAAK,KAAK,KAAK;AAC5B,QAAM,QAAQ,KAAK,KAAK,KAAK;AAC7B,SAAO,CAAC,MAAM,OAAO,MAAM,KAAK;AAClC;AAGA,IAAO,gBAAQ;","names":[]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@turf/line-segment",
3
- "version": "7.1.0",
4
- "description": "turf line-segment module",
3
+ "version": "7.3.0",
4
+ "description": "Creates line segments from a GeoJSON feature.",
5
5
  "author": "Turf Authors",
6
6
  "license": "MIT",
7
7
  "bugs": {
@@ -51,22 +51,22 @@
51
51
  },
52
52
  "devDependencies": {
53
53
  "@types/benchmark": "^2.1.5",
54
- "@types/tape": "^4.2.32",
54
+ "@types/tape": "^5.8.1",
55
55
  "benchmark": "^2.1.4",
56
56
  "load-json-file": "^7.0.1",
57
57
  "npm-run-all": "^4.1.5",
58
- "tape": "^5.7.2",
59
- "tsup": "^8.0.1",
60
- "tsx": "^4.6.2",
61
- "typescript": "^5.2.2",
62
- "write-json-file": "^5.0.0"
58
+ "tape": "^5.9.0",
59
+ "tsup": "^8.4.0",
60
+ "tsx": "^4.19.4",
61
+ "typescript": "^5.8.3",
62
+ "write-json-file": "^6.0.0"
63
63
  },
64
64
  "dependencies": {
65
- "@turf/helpers": "^7.1.0",
66
- "@turf/invariant": "^7.1.0",
67
- "@turf/meta": "^7.1.0",
65
+ "@turf/helpers": "7.3.0",
66
+ "@turf/invariant": "7.3.0",
67
+ "@turf/meta": "7.3.0",
68
68
  "@types/geojson": "^7946.0.10",
69
- "tslib": "^2.6.2"
69
+ "tslib": "^2.8.1"
70
70
  },
71
- "gitHead": "68915eeebc9278bb40dec3f1034499698a0561ef"
71
+ "gitHead": "9f58a103e8f9a587ab640307ed03ba5233913ddd"
72
72
  }