@turf/dissolve 7.2.0 → 7.3.1

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.
@@ -54,9 +54,9 @@ function dissolve(fc, options = {}) {
54
54
  }
55
55
  return _flatten.flatten.call(void 0, _helpers.featureCollection.call(void 0, outFeatures));
56
56
  }
57
- var turf_dissolve_default = dissolve;
57
+ var index_default = dissolve;
58
58
 
59
59
 
60
60
 
61
- exports.default = turf_dissolve_default; exports.dissolve = dissolve;
61
+ exports.default = index_default; exports.dissolve = dissolve;
62
62
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/turf/turf/packages/turf-dissolve/dist/cjs/index.cjs","../../index.ts"],"names":[],"mappings":"AAAA;ACCA,wCAA0D;AAC1D,4CAA6B;AAC7B,kCAA4B;AAC5B,wCAAwB;AACxB,8FAA0B;AAuB1B,SAAS,QAAA,CACP,EAAA,EACA,QAAA,EAEI,CAAC,CAAA,EACuB;AAE5B,EAAA,QAAA,EAAU,QAAA,GAAW,CAAC,CAAA;AACtB,EAAA,GAAA,CAAI,CAAC,+BAAA,OAAgB,CAAA,EAAG,MAAM,IAAI,KAAA,CAAM,oBAAoB,CAAA;AAC5D,EAAA,MAAM,EAAE,aAAa,EAAA,EAAI,OAAA;AAGzB,EAAA,qCAAA,EAAa,EAAI,SAAA,EAAW,UAAU,CAAA;AAGtC,EAAA,MAAM,YAAA,EAAc,CAAC,CAAA;AACrB,EAAA,GAAA,CAAI,CAAC,YAAA,EAAc;AACjB,IAAA,OAAO,8BAAA;AAAA,MACL,mCAAA;AAAA,QACW,QAAA,CAAA,KAAA,CAAM,KAAA;AAAA,UACb,IAAA;AAAA;AAAA,UAEA,EAAA,CAAG,QAAA,CAAS,GAAA,CAAI,QAAA,CAAU,CAAA,EAAG;AAC3B,YAAA,OAAO,CAAA,CAAE,QAAA,CAAS,WAAA;AAAA,UACpB,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACF,CAAA;AAAA,EACF,EAAA,KAAO;AAEL,IAAA,MAAM,mBAAA,EAAmD,CAAC,CAAA;AAC1D,IAAA,+BAAA,EAAY,EAAI,QAAA,CAAU,OAAA,EAAS;AACjC,MAAA,GAAA,CAAI,OAAA,CAAQ,UAAA,EAAY;AACtB,QAAA,GAAA,CACE,CAAC,MAAA,CAAO,SAAA,CAAU,cAAA,CAAe,IAAA;AAAA,UAC/B,kBAAA;AAAA,UACA,OAAA,CAAQ,UAAA,CAAW,YAAY;AAAA,QACjC,CAAA,EACA;AACA,UAAA,kBAAA,CAAmB,OAAA,CAAQ,UAAA,CAAW,YAAY,CAAC,EAAA,EACjD,CAAC,CAAA;AAAA,QACL;AACA,QAAA,kBAAA,CAAmB,OAAA,CAAQ,UAAA,CAAW,YAAY,CAAC,CAAA,CAAE,IAAA,CAAK,OAAO,CAAA;AAAA,MACnE;AAAA,IACF,CAAC,CAAA;AACD,IAAA,MAAM,KAAA,EAAO,MAAA,CAAO,IAAA,CAAK,kBAAkB,CAAA;AAG3C,IAAA,IAAA,CAAA,IAAS,EAAA,EAAI,CAAA,EAAG,EAAA,EAAI,IAAA,CAAK,MAAA,EAAQ,CAAA,EAAA,EAAK;AACpC,MAAA,MAAM,GAAA,EAAK,mCAAA;AAAA,QACA,QAAA,CAAA,KAAA,CAAM,KAAA;AAAA,UACb,IAAA;AAAA;AAAA,UAEC,kBAAA,CAAmB,IAAA,CAAK,CAAC,CAAC,CAAA,CAAyB,GAAA,CAAI,QAAA,CAAU,CAAA,EAAG;AACnE,YAAA,OAAO,CAAA,CAAE,QAAA,CAAS,WAAA;AAAA,UACpB,CAAC;AAAA,QACH;AAAA,MACF,CAAA;AACA,MAAA,GAAA,CAAI,GAAA,GAAM,EAAA,CAAG,UAAA,EAAY;AACvB,QAAA,EAAA,CAAG,UAAA,CAAW,YAAY,EAAA,EAAI,IAAA,CAAK,CAAC,CAAA;AACpC,QAAA,WAAA,CAAY,IAAA,CAAK,EAAE,CAAA;AAAA,MACrB;AAAA,IACF;AAAA,EACF;AAEA,EAAA,OAAO,8BAAA,wCAAQ,WAA6B,CAAC,CAAA;AAC/C;AAGA,IAAO,sBAAA,EAAQ,QAAA;ADxCf;AACE;AACA;AACF,qEAAC","file":"/home/runner/work/turf/turf/packages/turf-dissolve/dist/cjs/index.cjs","sourcesContent":[null,"import { Feature, FeatureCollection, Polygon } from \"geojson\";\nimport { featureCollection, isObject, multiPolygon } from \"@turf/helpers\";\nimport { collectionOf } from \"@turf/invariant\";\nimport { featureEach } from \"@turf/meta\";\nimport { flatten } from \"@turf/flatten\";\nimport * as polyclip from \"polyclip-ts\";\n\n/**\n * Dissolves a FeatureCollection of {@link Polygon} features, filtered by an optional property name:value.\n * Note that {@link MultiPolygon} features within the collection are not supported\n *\n * @function\n * @param {FeatureCollection<Polygon>} featureCollection input feature collection to be dissolved\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.propertyName] features with the same `propertyName` value will be dissolved.\n * @returns {FeatureCollection<Polygon>} a FeatureCollection containing the dissolved polygons\n * @example\n * var features = turf.featureCollection([\n * turf.polygon([[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]], {combine: 'yes'}),\n * turf.polygon([[[0, -1], [0, 0], [1, 0], [1, -1], [0,-1]]], {combine: 'yes'}),\n * turf.polygon([[[1,-1],[1, 0], [2, 0], [2, -1], [1, -1]]], {combine: 'no'}),\n * ]);\n *\n * var dissolved = turf.dissolve(features, {propertyName: 'combine'});\n *\n * //addToMap\n * var addToMap = [features, dissolved]\n */\nfunction dissolve(\n fc: FeatureCollection<Polygon>,\n options: {\n propertyName?: string;\n } = {}\n): FeatureCollection<Polygon> {\n // Optional parameters\n options = options || {};\n if (!isObject(options)) throw new Error(\"options is invalid\");\n const { propertyName } = options;\n\n // Input validation\n collectionOf(fc, \"Polygon\", \"dissolve\");\n\n // Main\n const outFeatures = [];\n if (!propertyName) {\n return flatten(\n multiPolygon(\n polyclip.union.apply(\n null,\n // List of polygons expressed as Position[][][] a.k.a. Geom[]\n fc.features.map(function (f) {\n return f.geometry.coordinates;\n }) as [polyclip.Geom, ...polyclip.Geom[]]\n )\n )\n );\n } else {\n // Group polygons by the value of their property named by propertyName\n const uniquePropertyVals: { [key: string]: Feature[] } = {};\n featureEach(fc, function (feature) {\n if (feature.properties) {\n if (\n !Object.prototype.hasOwnProperty.call(\n uniquePropertyVals,\n feature.properties[propertyName]\n )\n ) {\n uniquePropertyVals[feature.properties[propertyName]] =\n [] as Feature[];\n }\n uniquePropertyVals[feature.properties[propertyName]].push(feature);\n }\n });\n const vals = Object.keys(uniquePropertyVals);\n\n // Export each group of polygons as a separate feature.\n for (let i = 0; i < vals.length; i++) {\n const mp = multiPolygon(\n polyclip.union.apply(\n null,\n // List of polygons expressed as Position[][][] a.k.a. Geom[]\n (uniquePropertyVals[vals[i]] as Feature<Polygon>[]).map(function (f) {\n return f.geometry.coordinates;\n }) as [polyclip.Geom, ...polyclip.Geom[]]\n )\n );\n if (mp && mp.properties) {\n mp.properties[propertyName] = vals[i];\n outFeatures.push(mp);\n }\n }\n }\n\n return flatten(featureCollection(outFeatures));\n}\n\nexport { dissolve };\nexport default dissolve;\n"]}
1
+ {"version":3,"sources":["/home/runner/work/turf/turf/packages/turf-dissolve/dist/cjs/index.cjs","../../index.ts"],"names":[],"mappings":"AAAA;ACCA,wCAA0D;AAC1D,4CAA6B;AAC7B,kCAA4B;AAC5B,wCAAwB;AACxB,8FAA0B;AAuB1B,SAAS,QAAA,CACP,EAAA,EACA,QAAA,EAEI,CAAC,CAAA,EACuB;AAE5B,EAAA,QAAA,EAAU,QAAA,GAAW,CAAC,CAAA;AACtB,EAAA,GAAA,CAAI,CAAC,+BAAA,OAAgB,CAAA,EAAG,MAAM,IAAI,KAAA,CAAM,oBAAoB,CAAA;AAC5D,EAAA,MAAM,EAAE,aAAa,EAAA,EAAI,OAAA;AAGzB,EAAA,qCAAA,EAAa,EAAI,SAAA,EAAW,UAAU,CAAA;AAGtC,EAAA,MAAM,YAAA,EAAc,CAAC,CAAA;AACrB,EAAA,GAAA,CAAI,CAAC,YAAA,EAAc;AACjB,IAAA,OAAO,8BAAA;AAAA,MACL,mCAAA;AAAA,QACW,QAAA,CAAA,KAAA,CAAM,KAAA;AAAA,UACb,IAAA;AAAA;AAAA,UAEA,EAAA,CAAG,QAAA,CAAS,GAAA,CAAI,QAAA,CAAU,CAAA,EAAG;AAC3B,YAAA,OAAO,CAAA,CAAE,QAAA,CAAS,WAAA;AAAA,UACpB,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACF,CAAA;AAAA,EACF,EAAA,KAAO;AAEL,IAAA,MAAM,mBAAA,EAAmD,CAAC,CAAA;AAC1D,IAAA,+BAAA,EAAY,EAAI,QAAA,CAAU,OAAA,EAAS;AACjC,MAAA,GAAA,CAAI,OAAA,CAAQ,UAAA,EAAY;AACtB,QAAA,GAAA,CACE,CAAC,MAAA,CAAO,SAAA,CAAU,cAAA,CAAe,IAAA;AAAA,UAC/B,kBAAA;AAAA,UACA,OAAA,CAAQ,UAAA,CAAW,YAAY;AAAA,QACjC,CAAA,EACA;AACA,UAAA,kBAAA,CAAmB,OAAA,CAAQ,UAAA,CAAW,YAAY,CAAC,EAAA,EACjD,CAAC,CAAA;AAAA,QACL;AACA,QAAA,kBAAA,CAAmB,OAAA,CAAQ,UAAA,CAAW,YAAY,CAAC,CAAA,CAAE,IAAA,CAAK,OAAO,CAAA;AAAA,MACnE;AAAA,IACF,CAAC,CAAA;AACD,IAAA,MAAM,KAAA,EAAO,MAAA,CAAO,IAAA,CAAK,kBAAkB,CAAA;AAG3C,IAAA,IAAA,CAAA,IAAS,EAAA,EAAI,CAAA,EAAG,EAAA,EAAI,IAAA,CAAK,MAAA,EAAQ,CAAA,EAAA,EAAK;AACpC,MAAA,MAAM,GAAA,EAAK,mCAAA;AAAA,QACA,QAAA,CAAA,KAAA,CAAM,KAAA;AAAA,UACb,IAAA;AAAA;AAAA,UAEC,kBAAA,CAAmB,IAAA,CAAK,CAAC,CAAC,CAAA,CAAyB,GAAA,CAAI,QAAA,CAAU,CAAA,EAAG;AACnE,YAAA,OAAO,CAAA,CAAE,QAAA,CAAS,WAAA;AAAA,UACpB,CAAC;AAAA,QACH;AAAA,MACF,CAAA;AACA,MAAA,GAAA,CAAI,GAAA,GAAM,EAAA,CAAG,UAAA,EAAY;AACvB,QAAA,EAAA,CAAG,UAAA,CAAW,YAAY,EAAA,EAAI,IAAA,CAAK,CAAC,CAAA;AACpC,QAAA,WAAA,CAAY,IAAA,CAAK,EAAE,CAAA;AAAA,MACrB;AAAA,IACF;AAAA,EACF;AAEA,EAAA,OAAO,8BAAA,wCAAQ,WAA6B,CAAC,CAAA;AAC/C;AAGA,IAAO,cAAA,EAAQ,QAAA;ADxCf;AACE;AACA;AACF,6DAAC","file":"/home/runner/work/turf/turf/packages/turf-dissolve/dist/cjs/index.cjs","sourcesContent":[null,"import { Feature, FeatureCollection, Polygon } from \"geojson\";\nimport { featureCollection, isObject, multiPolygon } from \"@turf/helpers\";\nimport { collectionOf } from \"@turf/invariant\";\nimport { featureEach } from \"@turf/meta\";\nimport { flatten } from \"@turf/flatten\";\nimport * as polyclip from \"polyclip-ts\";\n\n/**\n * Dissolves a FeatureCollection of {@link Polygon} features, filtered by an optional property name:value.\n * Note that {@link MultiPolygon} features within the collection are not supported\n *\n * @function\n * @param {FeatureCollection<Polygon>} featureCollection input feature collection to be dissolved\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.propertyName] features with the same `propertyName` value will be dissolved.\n * @returns {FeatureCollection<Polygon>} a FeatureCollection containing the dissolved polygons\n * @example\n * var features = turf.featureCollection([\n * turf.polygon([[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]], {combine: 'yes'}),\n * turf.polygon([[[0, -1], [0, 0], [1, 0], [1, -1], [0,-1]]], {combine: 'yes'}),\n * turf.polygon([[[1,-1],[1, 0], [2, 0], [2, -1], [1, -1]]], {combine: 'no'}),\n * ]);\n *\n * var dissolved = turf.dissolve(features, {propertyName: 'combine'});\n *\n * //addToMap\n * var addToMap = [features, dissolved]\n */\nfunction dissolve(\n fc: FeatureCollection<Polygon>,\n options: {\n propertyName?: string;\n } = {}\n): FeatureCollection<Polygon> {\n // Optional parameters\n options = options || {};\n if (!isObject(options)) throw new Error(\"options is invalid\");\n const { propertyName } = options;\n\n // Input validation\n collectionOf(fc, \"Polygon\", \"dissolve\");\n\n // Main\n const outFeatures = [];\n if (!propertyName) {\n return flatten(\n multiPolygon(\n polyclip.union.apply(\n null,\n // List of polygons expressed as Position[][][] a.k.a. Geom[]\n fc.features.map(function (f) {\n return f.geometry.coordinates;\n }) as [polyclip.Geom, ...polyclip.Geom[]]\n )\n )\n );\n } else {\n // Group polygons by the value of their property named by propertyName\n const uniquePropertyVals: { [key: string]: Feature[] } = {};\n featureEach(fc, function (feature) {\n if (feature.properties) {\n if (\n !Object.prototype.hasOwnProperty.call(\n uniquePropertyVals,\n feature.properties[propertyName]\n )\n ) {\n uniquePropertyVals[feature.properties[propertyName]] =\n [] as Feature[];\n }\n uniquePropertyVals[feature.properties[propertyName]].push(feature);\n }\n });\n const vals = Object.keys(uniquePropertyVals);\n\n // Export each group of polygons as a separate feature.\n for (let i = 0; i < vals.length; i++) {\n const mp = multiPolygon(\n polyclip.union.apply(\n null,\n // List of polygons expressed as Position[][][] a.k.a. Geom[]\n (uniquePropertyVals[vals[i]] as Feature<Polygon>[]).map(function (f) {\n return f.geometry.coordinates;\n }) as [polyclip.Geom, ...polyclip.Geom[]]\n )\n );\n if (mp && mp.properties) {\n mp.properties[propertyName] = vals[i];\n outFeatures.push(mp);\n }\n }\n }\n\n return flatten(featureCollection(outFeatures));\n}\n\nexport { dissolve };\nexport default dissolve;\n"]}
package/dist/esm/index.js CHANGED
@@ -54,9 +54,9 @@ function dissolve(fc, options = {}) {
54
54
  }
55
55
  return flatten(featureCollection(outFeatures));
56
56
  }
57
- var turf_dissolve_default = dissolve;
57
+ var index_default = dissolve;
58
58
  export {
59
- turf_dissolve_default as default,
59
+ index_default as default,
60
60
  dissolve
61
61
  };
62
62
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../index.ts"],"sourcesContent":["import { Feature, FeatureCollection, Polygon } from \"geojson\";\nimport { featureCollection, isObject, multiPolygon } from \"@turf/helpers\";\nimport { collectionOf } from \"@turf/invariant\";\nimport { featureEach } from \"@turf/meta\";\nimport { flatten } from \"@turf/flatten\";\nimport * as polyclip from \"polyclip-ts\";\n\n/**\n * Dissolves a FeatureCollection of {@link Polygon} features, filtered by an optional property name:value.\n * Note that {@link MultiPolygon} features within the collection are not supported\n *\n * @function\n * @param {FeatureCollection<Polygon>} featureCollection input feature collection to be dissolved\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.propertyName] features with the same `propertyName` value will be dissolved.\n * @returns {FeatureCollection<Polygon>} a FeatureCollection containing the dissolved polygons\n * @example\n * var features = turf.featureCollection([\n * turf.polygon([[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]], {combine: 'yes'}),\n * turf.polygon([[[0, -1], [0, 0], [1, 0], [1, -1], [0,-1]]], {combine: 'yes'}),\n * turf.polygon([[[1,-1],[1, 0], [2, 0], [2, -1], [1, -1]]], {combine: 'no'}),\n * ]);\n *\n * var dissolved = turf.dissolve(features, {propertyName: 'combine'});\n *\n * //addToMap\n * var addToMap = [features, dissolved]\n */\nfunction dissolve(\n fc: FeatureCollection<Polygon>,\n options: {\n propertyName?: string;\n } = {}\n): FeatureCollection<Polygon> {\n // Optional parameters\n options = options || {};\n if (!isObject(options)) throw new Error(\"options is invalid\");\n const { propertyName } = options;\n\n // Input validation\n collectionOf(fc, \"Polygon\", \"dissolve\");\n\n // Main\n const outFeatures = [];\n if (!propertyName) {\n return flatten(\n multiPolygon(\n polyclip.union.apply(\n null,\n // List of polygons expressed as Position[][][] a.k.a. Geom[]\n fc.features.map(function (f) {\n return f.geometry.coordinates;\n }) as [polyclip.Geom, ...polyclip.Geom[]]\n )\n )\n );\n } else {\n // Group polygons by the value of their property named by propertyName\n const uniquePropertyVals: { [key: string]: Feature[] } = {};\n featureEach(fc, function (feature) {\n if (feature.properties) {\n if (\n !Object.prototype.hasOwnProperty.call(\n uniquePropertyVals,\n feature.properties[propertyName]\n )\n ) {\n uniquePropertyVals[feature.properties[propertyName]] =\n [] as Feature[];\n }\n uniquePropertyVals[feature.properties[propertyName]].push(feature);\n }\n });\n const vals = Object.keys(uniquePropertyVals);\n\n // Export each group of polygons as a separate feature.\n for (let i = 0; i < vals.length; i++) {\n const mp = multiPolygon(\n polyclip.union.apply(\n null,\n // List of polygons expressed as Position[][][] a.k.a. Geom[]\n (uniquePropertyVals[vals[i]] as Feature<Polygon>[]).map(function (f) {\n return f.geometry.coordinates;\n }) as [polyclip.Geom, ...polyclip.Geom[]]\n )\n );\n if (mp && mp.properties) {\n mp.properties[propertyName] = vals[i];\n outFeatures.push(mp);\n }\n }\n }\n\n return flatten(featureCollection(outFeatures));\n}\n\nexport { dissolve };\nexport default dissolve;\n"],"mappings":";AACA,SAAS,mBAAmB,UAAU,oBAAoB;AAC1D,SAAS,oBAAoB;AAC7B,SAAS,mBAAmB;AAC5B,SAAS,eAAe;AACxB,YAAY,cAAc;AAuB1B,SAAS,SACP,IACA,UAEI,CAAC,GACuB;AAE5B,YAAU,WAAW,CAAC;AACtB,MAAI,CAAC,SAAS,OAAO,EAAG,OAAM,IAAI,MAAM,oBAAoB;AAC5D,QAAM,EAAE,aAAa,IAAI;AAGzB,eAAa,IAAI,WAAW,UAAU;AAGtC,QAAM,cAAc,CAAC;AACrB,MAAI,CAAC,cAAc;AACjB,WAAO;AAAA,MACL;AAAA,QACW,eAAM;AAAA,UACb;AAAA;AAAA,UAEA,GAAG,SAAS,IAAI,SAAU,GAAG;AAC3B,mBAAO,EAAE,SAAS;AAAA,UACpB,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACF;AAAA,EACF,OAAO;AAEL,UAAM,qBAAmD,CAAC;AAC1D,gBAAY,IAAI,SAAU,SAAS;AACjC,UAAI,QAAQ,YAAY;AACtB,YACE,CAAC,OAAO,UAAU,eAAe;AAAA,UAC/B;AAAA,UACA,QAAQ,WAAW,YAAY;AAAA,QACjC,GACA;AACA,6BAAmB,QAAQ,WAAW,YAAY,CAAC,IACjD,CAAC;AAAA,QACL;AACA,2BAAmB,QAAQ,WAAW,YAAY,CAAC,EAAE,KAAK,OAAO;AAAA,MACnE;AAAA,IACF,CAAC;AACD,UAAM,OAAO,OAAO,KAAK,kBAAkB;AAG3C,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACpC,YAAM,KAAK;AAAA,QACA,eAAM;AAAA,UACb;AAAA;AAAA,UAEC,mBAAmB,KAAK,CAAC,CAAC,EAAyB,IAAI,SAAU,GAAG;AACnE,mBAAO,EAAE,SAAS;AAAA,UACpB,CAAC;AAAA,QACH;AAAA,MACF;AACA,UAAI,MAAM,GAAG,YAAY;AACvB,WAAG,WAAW,YAAY,IAAI,KAAK,CAAC;AACpC,oBAAY,KAAK,EAAE;AAAA,MACrB;AAAA,IACF;AAAA,EACF;AAEA,SAAO,QAAQ,kBAAkB,WAAW,CAAC;AAC/C;AAGA,IAAO,wBAAQ;","names":[]}
1
+ {"version":3,"sources":["../../index.ts"],"sourcesContent":["import { Feature, FeatureCollection, Polygon } from \"geojson\";\nimport { featureCollection, isObject, multiPolygon } from \"@turf/helpers\";\nimport { collectionOf } from \"@turf/invariant\";\nimport { featureEach } from \"@turf/meta\";\nimport { flatten } from \"@turf/flatten\";\nimport * as polyclip from \"polyclip-ts\";\n\n/**\n * Dissolves a FeatureCollection of {@link Polygon} features, filtered by an optional property name:value.\n * Note that {@link MultiPolygon} features within the collection are not supported\n *\n * @function\n * @param {FeatureCollection<Polygon>} featureCollection input feature collection to be dissolved\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.propertyName] features with the same `propertyName` value will be dissolved.\n * @returns {FeatureCollection<Polygon>} a FeatureCollection containing the dissolved polygons\n * @example\n * var features = turf.featureCollection([\n * turf.polygon([[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]], {combine: 'yes'}),\n * turf.polygon([[[0, -1], [0, 0], [1, 0], [1, -1], [0,-1]]], {combine: 'yes'}),\n * turf.polygon([[[1,-1],[1, 0], [2, 0], [2, -1], [1, -1]]], {combine: 'no'}),\n * ]);\n *\n * var dissolved = turf.dissolve(features, {propertyName: 'combine'});\n *\n * //addToMap\n * var addToMap = [features, dissolved]\n */\nfunction dissolve(\n fc: FeatureCollection<Polygon>,\n options: {\n propertyName?: string;\n } = {}\n): FeatureCollection<Polygon> {\n // Optional parameters\n options = options || {};\n if (!isObject(options)) throw new Error(\"options is invalid\");\n const { propertyName } = options;\n\n // Input validation\n collectionOf(fc, \"Polygon\", \"dissolve\");\n\n // Main\n const outFeatures = [];\n if (!propertyName) {\n return flatten(\n multiPolygon(\n polyclip.union.apply(\n null,\n // List of polygons expressed as Position[][][] a.k.a. Geom[]\n fc.features.map(function (f) {\n return f.geometry.coordinates;\n }) as [polyclip.Geom, ...polyclip.Geom[]]\n )\n )\n );\n } else {\n // Group polygons by the value of their property named by propertyName\n const uniquePropertyVals: { [key: string]: Feature[] } = {};\n featureEach(fc, function (feature) {\n if (feature.properties) {\n if (\n !Object.prototype.hasOwnProperty.call(\n uniquePropertyVals,\n feature.properties[propertyName]\n )\n ) {\n uniquePropertyVals[feature.properties[propertyName]] =\n [] as Feature[];\n }\n uniquePropertyVals[feature.properties[propertyName]].push(feature);\n }\n });\n const vals = Object.keys(uniquePropertyVals);\n\n // Export each group of polygons as a separate feature.\n for (let i = 0; i < vals.length; i++) {\n const mp = multiPolygon(\n polyclip.union.apply(\n null,\n // List of polygons expressed as Position[][][] a.k.a. Geom[]\n (uniquePropertyVals[vals[i]] as Feature<Polygon>[]).map(function (f) {\n return f.geometry.coordinates;\n }) as [polyclip.Geom, ...polyclip.Geom[]]\n )\n );\n if (mp && mp.properties) {\n mp.properties[propertyName] = vals[i];\n outFeatures.push(mp);\n }\n }\n }\n\n return flatten(featureCollection(outFeatures));\n}\n\nexport { dissolve };\nexport default dissolve;\n"],"mappings":";AACA,SAAS,mBAAmB,UAAU,oBAAoB;AAC1D,SAAS,oBAAoB;AAC7B,SAAS,mBAAmB;AAC5B,SAAS,eAAe;AACxB,YAAY,cAAc;AAuB1B,SAAS,SACP,IACA,UAEI,CAAC,GACuB;AAE5B,YAAU,WAAW,CAAC;AACtB,MAAI,CAAC,SAAS,OAAO,EAAG,OAAM,IAAI,MAAM,oBAAoB;AAC5D,QAAM,EAAE,aAAa,IAAI;AAGzB,eAAa,IAAI,WAAW,UAAU;AAGtC,QAAM,cAAc,CAAC;AACrB,MAAI,CAAC,cAAc;AACjB,WAAO;AAAA,MACL;AAAA,QACW,eAAM;AAAA,UACb;AAAA;AAAA,UAEA,GAAG,SAAS,IAAI,SAAU,GAAG;AAC3B,mBAAO,EAAE,SAAS;AAAA,UACpB,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACF;AAAA,EACF,OAAO;AAEL,UAAM,qBAAmD,CAAC;AAC1D,gBAAY,IAAI,SAAU,SAAS;AACjC,UAAI,QAAQ,YAAY;AACtB,YACE,CAAC,OAAO,UAAU,eAAe;AAAA,UAC/B;AAAA,UACA,QAAQ,WAAW,YAAY;AAAA,QACjC,GACA;AACA,6BAAmB,QAAQ,WAAW,YAAY,CAAC,IACjD,CAAC;AAAA,QACL;AACA,2BAAmB,QAAQ,WAAW,YAAY,CAAC,EAAE,KAAK,OAAO;AAAA,MACnE;AAAA,IACF,CAAC;AACD,UAAM,OAAO,OAAO,KAAK,kBAAkB;AAG3C,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACpC,YAAM,KAAK;AAAA,QACA,eAAM;AAAA,UACb;AAAA;AAAA,UAEC,mBAAmB,KAAK,CAAC,CAAC,EAAyB,IAAI,SAAU,GAAG;AACnE,mBAAO,EAAE,SAAS;AAAA,UACpB,CAAC;AAAA,QACH;AAAA,MACF;AACA,UAAI,MAAM,GAAG,YAAY;AACvB,WAAG,WAAW,YAAY,IAAI,KAAK,CAAC;AACpC,oBAAY,KAAK,EAAE;AAAA,MACrB;AAAA,IACF;AAAA,EACF;AAEA,SAAO,QAAQ,kBAAkB,WAAW,CAAC;AAC/C;AAGA,IAAO,gBAAQ;","names":[]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@turf/dissolve",
3
- "version": "7.2.0",
4
- "description": "turf dissolve module",
3
+ "version": "7.3.1",
4
+ "description": "Dissolves a FeatureCollection of Polygon features.",
5
5
  "author": "Turf Authors",
6
6
  "license": "MIT",
7
7
  "bugs": {
@@ -48,29 +48,28 @@
48
48
  "bench": "tsx bench.ts",
49
49
  "build": "tsup --config ../../tsup.config.ts",
50
50
  "docs": "tsx ../../scripts/generate-readmes.ts",
51
- "test": "npm-run-all --npm-path npm test:*",
51
+ "test": "pnpm run /test:.*/",
52
52
  "test:tape": "tsx test.ts"
53
53
  },
54
54
  "devDependencies": {
55
55
  "@types/benchmark": "^2.1.5",
56
- "@types/tape": "^4.13.4",
56
+ "@types/tape": "^5.8.1",
57
57
  "benchmark": "^2.1.4",
58
58
  "load-json-file": "^7.0.1",
59
- "npm-run-all": "^4.1.5",
60
59
  "tape": "^5.9.0",
61
- "tsup": "^8.3.5",
62
- "tsx": "^4.19.2",
63
- "typescript": "^5.5.4",
64
- "write-json-file": "^5.0.0"
60
+ "tsup": "^8.4.0",
61
+ "tsx": "^4.19.4",
62
+ "typescript": "^5.8.3",
63
+ "write-json-file": "^6.0.0"
65
64
  },
66
65
  "dependencies": {
67
- "@turf/flatten": "^7.2.0",
68
- "@turf/helpers": "^7.2.0",
69
- "@turf/invariant": "^7.2.0",
70
- "@turf/meta": "^7.2.0",
66
+ "@turf/flatten": "7.3.1",
67
+ "@turf/helpers": "7.3.1",
68
+ "@turf/invariant": "7.3.1",
69
+ "@turf/meta": "7.3.1",
71
70
  "@types/geojson": "^7946.0.10",
72
71
  "polyclip-ts": "^0.16.8",
73
72
  "tslib": "^2.8.1"
74
73
  },
75
- "gitHead": "7b0f0374c4668cd569f8904c71e2ae7d941be867"
74
+ "gitHead": "b7f1b4eafb760431e03955499d8eac9489438219"
76
75
  }