@turf/polygon-smooth 7.2.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.
package/README.md CHANGED
@@ -31,7 +31,7 @@ Returns **[FeatureCollection][4]<([Polygon][1] | [MultiPolygon][2])>** FeatureCo
31
31
 
32
32
  [2]: https://tools.ietf.org/html/rfc7946#section-3.1.7
33
33
 
34
- [3]: http://graphics.cs.ucdavis.edu/education/CAGDNotes/Chaikins-Algorithm/Chaikins-Algorithm.html
34
+ [3]: https://www.cs.unc.edu/~dm/UNC/COMP258/LECTURES/Chaikins-Algorithm.pdf
35
35
 
36
36
  [4]: https://tools.ietf.org/html/rfc7946#section-3.3
37
37
 
@@ -106,9 +106,9 @@ function processMultiPolygon(poly, tempOutput) {
106
106
  });
107
107
  });
108
108
  }
109
- var turf_polygon_smooth_default = polygonSmooth;
109
+ var index_default = polygonSmooth;
110
110
 
111
111
 
112
112
 
113
- exports.default = turf_polygon_smooth_default; exports.polygonSmooth = polygonSmooth;
113
+ exports.default = index_default; exports.polygonSmooth = polygonSmooth;
114
114
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/turf/turf/packages/turf-polygon-smooth/dist/cjs/index.cjs","../../index.ts"],"names":["poly"],"mappings":"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","file":"/home/runner/work/turf/turf/packages/turf-polygon-smooth/dist/cjs/index.cjs","sourcesContent":[null,"import type {\n Feature,\n FeatureCollection,\n Polygon,\n Position,\n MultiPolygon,\n} from \"geojson\";\nimport { featureCollection, multiPolygon, polygon } from \"@turf/helpers\";\nimport { coordEach, geomEach } from \"@turf/meta\";\n\n/**\n * Smooths a {@link Polygon} or {@link MultiPolygon}. Based on [Chaikin's algorithm](http://graphics.cs.ucdavis.edu/education/CAGDNotes/Chaikins-Algorithm/Chaikins-Algorithm.html).\n * Warning: may create degenerate polygons.\n *\n * @function\n * @param {FeatureCollection<Polygon|MultiPolygon>|Feature<Polygon|MultiPolygon>|Polygon|MultiPolygon} inputPolys (Multi)Polygon(s) to smooth\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.iterations=1] The number of times to smooth the polygon. A higher value means a smoother polygon.\n * @returns {FeatureCollection<Polygon|MultiPolygon>} FeatureCollection containing the smoothed polygon/multipoylgons\n * @example\n * var polygon = turf.polygon([[[11, 0], [22, 4], [31, 0], [31, 11], [21, 15], [11, 11], [11, 0]]]);\n *\n * var smoothed = turf.polygonSmooth(polygon, {iterations: 3})\n *\n * //addToMap\n * var addToMap = [smoothed, polygon];\n */\nfunction polygonSmooth(\n inputPolys:\n | FeatureCollection<Polygon | MultiPolygon>\n | Feature<Polygon | MultiPolygon>\n | Polygon\n | MultiPolygon,\n options?: {\n iterations?: number;\n }\n): FeatureCollection<Polygon | MultiPolygon> {\n // Optional parameters\n options = options || {};\n options.iterations = options.iterations || 1;\n\n const { iterations } = options;\n\n const outPolys: Feature<Polygon | MultiPolygon>[] = [];\n if (!inputPolys) throw new Error(\"inputPolys is required\");\n\n geomEach(inputPolys, function (geom, geomIndex, properties) {\n if (geom.type === \"Polygon\") {\n let outCoords: Position[][] = [[]];\n for (let i = 0; i < iterations; i++) {\n let tempOutput: Position[][] = [];\n let poly = geom;\n if (i > 0) {\n poly = polygon(outCoords).geometry;\n }\n processPolygon(poly, tempOutput);\n outCoords = tempOutput.slice(0);\n }\n outPolys.push(polygon(outCoords, properties));\n } else if (geom.type === \"MultiPolygon\") {\n let outCoords: Position[][][] = [[[]]];\n for (let y = 0; y < iterations; y++) {\n let tempOutput: Position[][][] = [];\n let poly = geom;\n if (y > 0) {\n poly = multiPolygon(outCoords).geometry;\n }\n processMultiPolygon(poly, tempOutput);\n outCoords = tempOutput.slice(0);\n }\n outPolys.push(multiPolygon(outCoords, properties));\n } else {\n throw new Error(\"geometry is invalid, must be Polygon or MultiPolygon\");\n }\n });\n\n return featureCollection(outPolys);\n}\n\n/**\n * @param {poly} poly to process\n * @param {poly} tempOutput to place the results in\n * @private\n */\nfunction processPolygon(poly: Polygon, tempOutput: Position[][]) {\n var previousCoord: Position;\n var previousGeometryIndex: number;\n\n coordEach(\n poly,\n function (\n currentCoord,\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) {\n if (previousGeometryIndex !== geometryIndex) {\n tempOutput.push([]);\n } else {\n var p0x = previousCoord[0];\n var p0y = previousCoord[1];\n var p1x = currentCoord[0];\n var p1y = currentCoord[1];\n tempOutput[geometryIndex].push([\n 0.75 * p0x + 0.25 * p1x,\n 0.75 * p0y + 0.25 * p1y,\n ]);\n tempOutput[geometryIndex].push([\n 0.25 * p0x + 0.75 * p1x,\n 0.25 * p0y + 0.75 * p1y,\n ]);\n }\n previousCoord = currentCoord;\n previousGeometryIndex = geometryIndex;\n },\n false\n );\n tempOutput.forEach(function (ring) {\n ring.push(ring[0]);\n });\n}\n\n/**\n * @param {poly} poly to process\n * @param {poly} tempOutput to place the results in\n * @private\n */\nfunction processMultiPolygon(poly: MultiPolygon, tempOutput: Position[][][]) {\n let previousCoord: Position;\n let previousMultiFeatureIndex: number;\n let previousGeometryIndex: number;\n\n coordEach(\n poly,\n function (\n currentCoord,\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) {\n if (previousMultiFeatureIndex !== multiFeatureIndex) {\n tempOutput.push([[]]);\n } else if (previousGeometryIndex !== geometryIndex) {\n tempOutput[multiFeatureIndex].push([]);\n } else {\n var p0x = previousCoord[0];\n var p0y = previousCoord[1];\n var p1x = currentCoord[0];\n var p1y = currentCoord[1];\n tempOutput[multiFeatureIndex][geometryIndex].push([\n 0.75 * p0x + 0.25 * p1x,\n 0.75 * p0y + 0.25 * p1y,\n ]);\n tempOutput[multiFeatureIndex][geometryIndex].push([\n 0.25 * p0x + 0.75 * p1x,\n 0.25 * p0y + 0.75 * p1y,\n ]);\n }\n previousCoord = currentCoord;\n previousMultiFeatureIndex = multiFeatureIndex;\n previousGeometryIndex = geometryIndex;\n },\n false\n );\n tempOutput.forEach(function (poly) {\n poly.forEach(function (ring) {\n ring.push(ring[0]);\n });\n });\n}\n\nexport { polygonSmooth };\nexport default polygonSmooth;\n"]}
1
+ {"version":3,"sources":["/home/runner/work/turf/turf/packages/turf-polygon-smooth/dist/cjs/index.cjs","../../index.ts"],"names":["poly"],"mappings":"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","file":"/home/runner/work/turf/turf/packages/turf-polygon-smooth/dist/cjs/index.cjs","sourcesContent":[null,"import type {\n Feature,\n FeatureCollection,\n Polygon,\n Position,\n MultiPolygon,\n} from \"geojson\";\nimport { featureCollection, multiPolygon, polygon } from \"@turf/helpers\";\nimport { coordEach, geomEach } from \"@turf/meta\";\n\n/**\n * Smooths a {@link Polygon} or {@link MultiPolygon}. Based on [Chaikin's algorithm](https://www.cs.unc.edu/~dm/UNC/COMP258/LECTURES/Chaikins-Algorithm.pdf).\n * Warning: may create degenerate polygons.\n *\n * @function\n * @param {FeatureCollection<Polygon|MultiPolygon>|Feature<Polygon|MultiPolygon>|Polygon|MultiPolygon} inputPolys (Multi)Polygon(s) to smooth\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.iterations=1] The number of times to smooth the polygon. A higher value means a smoother polygon.\n * @returns {FeatureCollection<Polygon|MultiPolygon>} FeatureCollection containing the smoothed polygon/multipoylgons\n * @example\n * var polygon = turf.polygon([[[11, 0], [22, 4], [31, 0], [31, 11], [21, 15], [11, 11], [11, 0]]]);\n *\n * var smoothed = turf.polygonSmooth(polygon, {iterations: 3})\n *\n * //addToMap\n * var addToMap = [smoothed, polygon];\n */\nfunction polygonSmooth(\n inputPolys:\n | FeatureCollection<Polygon | MultiPolygon>\n | Feature<Polygon | MultiPolygon>\n | Polygon\n | MultiPolygon,\n options?: {\n iterations?: number;\n }\n): FeatureCollection<Polygon | MultiPolygon> {\n // Optional parameters\n options = options || {};\n options.iterations = options.iterations || 1;\n\n const { iterations } = options;\n\n const outPolys: Feature<Polygon | MultiPolygon>[] = [];\n if (!inputPolys) throw new Error(\"inputPolys is required\");\n\n geomEach(inputPolys, function (geom, geomIndex, properties) {\n if (geom.type === \"Polygon\") {\n let outCoords: Position[][] = [[]];\n for (let i = 0; i < iterations; i++) {\n let tempOutput: Position[][] = [];\n let poly = geom;\n if (i > 0) {\n poly = polygon(outCoords).geometry;\n }\n processPolygon(poly, tempOutput);\n outCoords = tempOutput.slice(0);\n }\n outPolys.push(polygon(outCoords, properties));\n } else if (geom.type === \"MultiPolygon\") {\n let outCoords: Position[][][] = [[[]]];\n for (let y = 0; y < iterations; y++) {\n let tempOutput: Position[][][] = [];\n let poly = geom;\n if (y > 0) {\n poly = multiPolygon(outCoords).geometry;\n }\n processMultiPolygon(poly, tempOutput);\n outCoords = tempOutput.slice(0);\n }\n outPolys.push(multiPolygon(outCoords, properties));\n } else {\n throw new Error(\"geometry is invalid, must be Polygon or MultiPolygon\");\n }\n });\n\n return featureCollection(outPolys);\n}\n\n/**\n * @param {poly} poly to process\n * @param {poly} tempOutput to place the results in\n * @private\n */\nfunction processPolygon(poly: Polygon, tempOutput: Position[][]) {\n var previousCoord: Position;\n var previousGeometryIndex: number;\n\n coordEach(\n poly,\n function (\n currentCoord,\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) {\n if (previousGeometryIndex !== geometryIndex) {\n tempOutput.push([]);\n } else {\n var p0x = previousCoord[0];\n var p0y = previousCoord[1];\n var p1x = currentCoord[0];\n var p1y = currentCoord[1];\n tempOutput[geometryIndex].push([\n 0.75 * p0x + 0.25 * p1x,\n 0.75 * p0y + 0.25 * p1y,\n ]);\n tempOutput[geometryIndex].push([\n 0.25 * p0x + 0.75 * p1x,\n 0.25 * p0y + 0.75 * p1y,\n ]);\n }\n previousCoord = currentCoord;\n previousGeometryIndex = geometryIndex;\n },\n false\n );\n tempOutput.forEach(function (ring) {\n ring.push(ring[0]);\n });\n}\n\n/**\n * @param {poly} poly to process\n * @param {poly} tempOutput to place the results in\n * @private\n */\nfunction processMultiPolygon(poly: MultiPolygon, tempOutput: Position[][][]) {\n let previousCoord: Position;\n let previousMultiFeatureIndex: number;\n let previousGeometryIndex: number;\n\n coordEach(\n poly,\n function (\n currentCoord,\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) {\n if (previousMultiFeatureIndex !== multiFeatureIndex) {\n tempOutput.push([[]]);\n } else if (previousGeometryIndex !== geometryIndex) {\n tempOutput[multiFeatureIndex].push([]);\n } else {\n var p0x = previousCoord[0];\n var p0y = previousCoord[1];\n var p1x = currentCoord[0];\n var p1y = currentCoord[1];\n tempOutput[multiFeatureIndex][geometryIndex].push([\n 0.75 * p0x + 0.25 * p1x,\n 0.75 * p0y + 0.25 * p1y,\n ]);\n tempOutput[multiFeatureIndex][geometryIndex].push([\n 0.25 * p0x + 0.75 * p1x,\n 0.25 * p0y + 0.75 * p1y,\n ]);\n }\n previousCoord = currentCoord;\n previousMultiFeatureIndex = multiFeatureIndex;\n previousGeometryIndex = geometryIndex;\n },\n false\n );\n tempOutput.forEach(function (poly) {\n poly.forEach(function (ring) {\n ring.push(ring[0]);\n });\n });\n}\n\nexport { polygonSmooth };\nexport default polygonSmooth;\n"]}
@@ -1,7 +1,7 @@
1
1
  import { FeatureCollection, Polygon, MultiPolygon, Feature } from 'geojson';
2
2
 
3
3
  /**
4
- * Smooths a {@link Polygon} or {@link MultiPolygon}. Based on [Chaikin's algorithm](http://graphics.cs.ucdavis.edu/education/CAGDNotes/Chaikins-Algorithm/Chaikins-Algorithm.html).
4
+ * Smooths a {@link Polygon} or {@link MultiPolygon}. Based on [Chaikin's algorithm](https://www.cs.unc.edu/~dm/UNC/COMP258/LECTURES/Chaikins-Algorithm.pdf).
5
5
  * Warning: may create degenerate polygons.
6
6
  *
7
7
  * @function
@@ -1,7 +1,7 @@
1
1
  import { FeatureCollection, Polygon, MultiPolygon, Feature } from 'geojson';
2
2
 
3
3
  /**
4
- * Smooths a {@link Polygon} or {@link MultiPolygon}. Based on [Chaikin's algorithm](http://graphics.cs.ucdavis.edu/education/CAGDNotes/Chaikins-Algorithm/Chaikins-Algorithm.html).
4
+ * Smooths a {@link Polygon} or {@link MultiPolygon}. Based on [Chaikin's algorithm](https://www.cs.unc.edu/~dm/UNC/COMP258/LECTURES/Chaikins-Algorithm.pdf).
5
5
  * Warning: may create degenerate polygons.
6
6
  *
7
7
  * @function
package/dist/esm/index.js CHANGED
@@ -106,9 +106,9 @@ function processMultiPolygon(poly, tempOutput) {
106
106
  });
107
107
  });
108
108
  }
109
- var turf_polygon_smooth_default = polygonSmooth;
109
+ var index_default = polygonSmooth;
110
110
  export {
111
- turf_polygon_smooth_default as default,
111
+ index_default as default,
112
112
  polygonSmooth
113
113
  };
114
114
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../index.ts"],"sourcesContent":["import type {\n Feature,\n FeatureCollection,\n Polygon,\n Position,\n MultiPolygon,\n} from \"geojson\";\nimport { featureCollection, multiPolygon, polygon } from \"@turf/helpers\";\nimport { coordEach, geomEach } from \"@turf/meta\";\n\n/**\n * Smooths a {@link Polygon} or {@link MultiPolygon}. Based on [Chaikin's algorithm](http://graphics.cs.ucdavis.edu/education/CAGDNotes/Chaikins-Algorithm/Chaikins-Algorithm.html).\n * Warning: may create degenerate polygons.\n *\n * @function\n * @param {FeatureCollection<Polygon|MultiPolygon>|Feature<Polygon|MultiPolygon>|Polygon|MultiPolygon} inputPolys (Multi)Polygon(s) to smooth\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.iterations=1] The number of times to smooth the polygon. A higher value means a smoother polygon.\n * @returns {FeatureCollection<Polygon|MultiPolygon>} FeatureCollection containing the smoothed polygon/multipoylgons\n * @example\n * var polygon = turf.polygon([[[11, 0], [22, 4], [31, 0], [31, 11], [21, 15], [11, 11], [11, 0]]]);\n *\n * var smoothed = turf.polygonSmooth(polygon, {iterations: 3})\n *\n * //addToMap\n * var addToMap = [smoothed, polygon];\n */\nfunction polygonSmooth(\n inputPolys:\n | FeatureCollection<Polygon | MultiPolygon>\n | Feature<Polygon | MultiPolygon>\n | Polygon\n | MultiPolygon,\n options?: {\n iterations?: number;\n }\n): FeatureCollection<Polygon | MultiPolygon> {\n // Optional parameters\n options = options || {};\n options.iterations = options.iterations || 1;\n\n const { iterations } = options;\n\n const outPolys: Feature<Polygon | MultiPolygon>[] = [];\n if (!inputPolys) throw new Error(\"inputPolys is required\");\n\n geomEach(inputPolys, function (geom, geomIndex, properties) {\n if (geom.type === \"Polygon\") {\n let outCoords: Position[][] = [[]];\n for (let i = 0; i < iterations; i++) {\n let tempOutput: Position[][] = [];\n let poly = geom;\n if (i > 0) {\n poly = polygon(outCoords).geometry;\n }\n processPolygon(poly, tempOutput);\n outCoords = tempOutput.slice(0);\n }\n outPolys.push(polygon(outCoords, properties));\n } else if (geom.type === \"MultiPolygon\") {\n let outCoords: Position[][][] = [[[]]];\n for (let y = 0; y < iterations; y++) {\n let tempOutput: Position[][][] = [];\n let poly = geom;\n if (y > 0) {\n poly = multiPolygon(outCoords).geometry;\n }\n processMultiPolygon(poly, tempOutput);\n outCoords = tempOutput.slice(0);\n }\n outPolys.push(multiPolygon(outCoords, properties));\n } else {\n throw new Error(\"geometry is invalid, must be Polygon or MultiPolygon\");\n }\n });\n\n return featureCollection(outPolys);\n}\n\n/**\n * @param {poly} poly to process\n * @param {poly} tempOutput to place the results in\n * @private\n */\nfunction processPolygon(poly: Polygon, tempOutput: Position[][]) {\n var previousCoord: Position;\n var previousGeometryIndex: number;\n\n coordEach(\n poly,\n function (\n currentCoord,\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) {\n if (previousGeometryIndex !== geometryIndex) {\n tempOutput.push([]);\n } else {\n var p0x = previousCoord[0];\n var p0y = previousCoord[1];\n var p1x = currentCoord[0];\n var p1y = currentCoord[1];\n tempOutput[geometryIndex].push([\n 0.75 * p0x + 0.25 * p1x,\n 0.75 * p0y + 0.25 * p1y,\n ]);\n tempOutput[geometryIndex].push([\n 0.25 * p0x + 0.75 * p1x,\n 0.25 * p0y + 0.75 * p1y,\n ]);\n }\n previousCoord = currentCoord;\n previousGeometryIndex = geometryIndex;\n },\n false\n );\n tempOutput.forEach(function (ring) {\n ring.push(ring[0]);\n });\n}\n\n/**\n * @param {poly} poly to process\n * @param {poly} tempOutput to place the results in\n * @private\n */\nfunction processMultiPolygon(poly: MultiPolygon, tempOutput: Position[][][]) {\n let previousCoord: Position;\n let previousMultiFeatureIndex: number;\n let previousGeometryIndex: number;\n\n coordEach(\n poly,\n function (\n currentCoord,\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) {\n if (previousMultiFeatureIndex !== multiFeatureIndex) {\n tempOutput.push([[]]);\n } else if (previousGeometryIndex !== geometryIndex) {\n tempOutput[multiFeatureIndex].push([]);\n } else {\n var p0x = previousCoord[0];\n var p0y = previousCoord[1];\n var p1x = currentCoord[0];\n var p1y = currentCoord[1];\n tempOutput[multiFeatureIndex][geometryIndex].push([\n 0.75 * p0x + 0.25 * p1x,\n 0.75 * p0y + 0.25 * p1y,\n ]);\n tempOutput[multiFeatureIndex][geometryIndex].push([\n 0.25 * p0x + 0.75 * p1x,\n 0.25 * p0y + 0.75 * p1y,\n ]);\n }\n previousCoord = currentCoord;\n previousMultiFeatureIndex = multiFeatureIndex;\n previousGeometryIndex = geometryIndex;\n },\n false\n );\n tempOutput.forEach(function (poly) {\n poly.forEach(function (ring) {\n ring.push(ring[0]);\n });\n });\n}\n\nexport { polygonSmooth };\nexport default polygonSmooth;\n"],"mappings":"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","names":["poly"]}
1
+ {"version":3,"sources":["../../index.ts"],"sourcesContent":["import type {\n Feature,\n FeatureCollection,\n Polygon,\n Position,\n MultiPolygon,\n} from \"geojson\";\nimport { featureCollection, multiPolygon, polygon } from \"@turf/helpers\";\nimport { coordEach, geomEach } from \"@turf/meta\";\n\n/**\n * Smooths a {@link Polygon} or {@link MultiPolygon}. Based on [Chaikin's algorithm](https://www.cs.unc.edu/~dm/UNC/COMP258/LECTURES/Chaikins-Algorithm.pdf).\n * Warning: may create degenerate polygons.\n *\n * @function\n * @param {FeatureCollection<Polygon|MultiPolygon>|Feature<Polygon|MultiPolygon>|Polygon|MultiPolygon} inputPolys (Multi)Polygon(s) to smooth\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.iterations=1] The number of times to smooth the polygon. A higher value means a smoother polygon.\n * @returns {FeatureCollection<Polygon|MultiPolygon>} FeatureCollection containing the smoothed polygon/multipoylgons\n * @example\n * var polygon = turf.polygon([[[11, 0], [22, 4], [31, 0], [31, 11], [21, 15], [11, 11], [11, 0]]]);\n *\n * var smoothed = turf.polygonSmooth(polygon, {iterations: 3})\n *\n * //addToMap\n * var addToMap = [smoothed, polygon];\n */\nfunction polygonSmooth(\n inputPolys:\n | FeatureCollection<Polygon | MultiPolygon>\n | Feature<Polygon | MultiPolygon>\n | Polygon\n | MultiPolygon,\n options?: {\n iterations?: number;\n }\n): FeatureCollection<Polygon | MultiPolygon> {\n // Optional parameters\n options = options || {};\n options.iterations = options.iterations || 1;\n\n const { iterations } = options;\n\n const outPolys: Feature<Polygon | MultiPolygon>[] = [];\n if (!inputPolys) throw new Error(\"inputPolys is required\");\n\n geomEach(inputPolys, function (geom, geomIndex, properties) {\n if (geom.type === \"Polygon\") {\n let outCoords: Position[][] = [[]];\n for (let i = 0; i < iterations; i++) {\n let tempOutput: Position[][] = [];\n let poly = geom;\n if (i > 0) {\n poly = polygon(outCoords).geometry;\n }\n processPolygon(poly, tempOutput);\n outCoords = tempOutput.slice(0);\n }\n outPolys.push(polygon(outCoords, properties));\n } else if (geom.type === \"MultiPolygon\") {\n let outCoords: Position[][][] = [[[]]];\n for (let y = 0; y < iterations; y++) {\n let tempOutput: Position[][][] = [];\n let poly = geom;\n if (y > 0) {\n poly = multiPolygon(outCoords).geometry;\n }\n processMultiPolygon(poly, tempOutput);\n outCoords = tempOutput.slice(0);\n }\n outPolys.push(multiPolygon(outCoords, properties));\n } else {\n throw new Error(\"geometry is invalid, must be Polygon or MultiPolygon\");\n }\n });\n\n return featureCollection(outPolys);\n}\n\n/**\n * @param {poly} poly to process\n * @param {poly} tempOutput to place the results in\n * @private\n */\nfunction processPolygon(poly: Polygon, tempOutput: Position[][]) {\n var previousCoord: Position;\n var previousGeometryIndex: number;\n\n coordEach(\n poly,\n function (\n currentCoord,\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) {\n if (previousGeometryIndex !== geometryIndex) {\n tempOutput.push([]);\n } else {\n var p0x = previousCoord[0];\n var p0y = previousCoord[1];\n var p1x = currentCoord[0];\n var p1y = currentCoord[1];\n tempOutput[geometryIndex].push([\n 0.75 * p0x + 0.25 * p1x,\n 0.75 * p0y + 0.25 * p1y,\n ]);\n tempOutput[geometryIndex].push([\n 0.25 * p0x + 0.75 * p1x,\n 0.25 * p0y + 0.75 * p1y,\n ]);\n }\n previousCoord = currentCoord;\n previousGeometryIndex = geometryIndex;\n },\n false\n );\n tempOutput.forEach(function (ring) {\n ring.push(ring[0]);\n });\n}\n\n/**\n * @param {poly} poly to process\n * @param {poly} tempOutput to place the results in\n * @private\n */\nfunction processMultiPolygon(poly: MultiPolygon, tempOutput: Position[][][]) {\n let previousCoord: Position;\n let previousMultiFeatureIndex: number;\n let previousGeometryIndex: number;\n\n coordEach(\n poly,\n function (\n currentCoord,\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) {\n if (previousMultiFeatureIndex !== multiFeatureIndex) {\n tempOutput.push([[]]);\n } else if (previousGeometryIndex !== geometryIndex) {\n tempOutput[multiFeatureIndex].push([]);\n } else {\n var p0x = previousCoord[0];\n var p0y = previousCoord[1];\n var p1x = currentCoord[0];\n var p1y = currentCoord[1];\n tempOutput[multiFeatureIndex][geometryIndex].push([\n 0.75 * p0x + 0.25 * p1x,\n 0.75 * p0y + 0.25 * p1y,\n ]);\n tempOutput[multiFeatureIndex][geometryIndex].push([\n 0.25 * p0x + 0.75 * p1x,\n 0.25 * p0y + 0.75 * p1y,\n ]);\n }\n previousCoord = currentCoord;\n previousMultiFeatureIndex = multiFeatureIndex;\n previousGeometryIndex = geometryIndex;\n },\n false\n );\n tempOutput.forEach(function (poly) {\n poly.forEach(function (ring) {\n ring.push(ring[0]);\n });\n });\n}\n\nexport { polygonSmooth };\nexport default polygonSmooth;\n"],"mappings":"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","names":["poly"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@turf/polygon-smooth",
3
- "version": "7.2.0",
4
- "description": "turf polygon smooth module",
3
+ "version": "7.3.0",
4
+ "description": "Smooths a Polygon or MultiPolygon, based on Chaikin's algorithm.",
5
5
  "author": "Turf Authors",
6
6
  "contributors": [
7
7
  "Rowan Winsemius <@rowanwins>"
@@ -55,22 +55,22 @@
55
55
  },
56
56
  "devDependencies": {
57
57
  "@types/benchmark": "^2.1.5",
58
- "@types/tape": "^4.13.4",
58
+ "@types/tape": "^5.8.1",
59
59
  "benchmark": "^2.1.4",
60
- "glob": "^10.3.10",
60
+ "glob": "^11.0.2",
61
61
  "load-json-file": "^7.0.1",
62
62
  "npm-run-all": "^4.1.5",
63
63
  "tape": "^5.9.0",
64
- "tsup": "^8.3.5",
65
- "tsx": "^4.19.2",
66
- "typescript": "^5.5.4",
67
- "write-json-file": "^5.0.0"
64
+ "tsup": "^8.4.0",
65
+ "tsx": "^4.19.4",
66
+ "typescript": "^5.8.3",
67
+ "write-json-file": "^6.0.0"
68
68
  },
69
69
  "dependencies": {
70
- "@turf/helpers": "^7.2.0",
71
- "@turf/meta": "^7.2.0",
70
+ "@turf/helpers": "7.3.0",
71
+ "@turf/meta": "7.3.0",
72
72
  "@types/geojson": "^7946.0.10",
73
73
  "tslib": "^2.8.1"
74
74
  },
75
- "gitHead": "7b0f0374c4668cd569f8904c71e2ae7d941be867"
75
+ "gitHead": "9f58a103e8f9a587ab640307ed03ba5233913ddd"
76
76
  }