| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- // index.ts
- import { feature, featureCollection } from "@turf/helpers";
- import { featureEach } from "@turf/meta";
- function combine(fc) {
- var groups = {
- MultiPoint: {
- coordinates: [],
- properties: []
- },
- MultiLineString: {
- coordinates: [],
- properties: []
- },
- MultiPolygon: {
- coordinates: [],
- properties: []
- }
- };
- featureEach(fc, (feature2) => {
- var _a;
- switch ((_a = feature2.geometry) == null ? void 0 : _a.type) {
- case "Point":
- groups.MultiPoint.coordinates.push(feature2.geometry.coordinates);
- groups.MultiPoint.properties.push(feature2.properties);
- break;
- case "MultiPoint":
- groups.MultiPoint.coordinates.push(...feature2.geometry.coordinates);
- groups.MultiPoint.properties.push(feature2.properties);
- break;
- case "LineString":
- groups.MultiLineString.coordinates.push(feature2.geometry.coordinates);
- groups.MultiLineString.properties.push(feature2.properties);
- break;
- case "MultiLineString":
- groups.MultiLineString.coordinates.push(
- ...feature2.geometry.coordinates
- );
- groups.MultiLineString.properties.push(feature2.properties);
- break;
- case "Polygon":
- groups.MultiPolygon.coordinates.push(feature2.geometry.coordinates);
- groups.MultiPolygon.properties.push(feature2.properties);
- break;
- case "MultiPolygon":
- groups.MultiPolygon.coordinates.push(...feature2.geometry.coordinates);
- groups.MultiPolygon.properties.push(feature2.properties);
- break;
- default:
- break;
- }
- });
- return featureCollection(
- Object.keys(groups).filter(function(key) {
- return groups[key].coordinates.length;
- }).sort().map(function(key) {
- var geometry = { type: key, coordinates: groups[key].coordinates };
- var properties = { collectedProperties: groups[key].properties };
- return feature(geometry, properties);
- })
- );
- }
- var turf_combine_default = combine;
- export {
- combine,
- turf_combine_default as default
- };
- //# sourceMappingURL=index.js.map
|