{"version":3,"file":"@turf-fj_lC-g6.js","sources":["../../node_modules/@turf/helpers/dist/esm/index.js","../../node_modules/@turf/invariant/dist/esm/index.js","../../node_modules/@turf/distance/dist/esm/index.js","../../node_modules/@turf/meta/dist/esm/index.js","../../node_modules/@turf/area/dist/esm/index.js","../../node_modules/@turf/bbox/dist/esm/index.js","../../node_modules/@turf/clean-coords/dist/esm/index.js","../../node_modules/@turf/centroid/dist/esm/index.js","../../node_modules/@turf/clone/dist/esm/index.js","../../node_modules/@turf/length/dist/esm/index.js","../../node_modules/@turf/simplify/dist/esm/index.js"],"sourcesContent":["// index.ts\nvar earthRadius = 63710088e-1;\nvar factors = {\n centimeters: earthRadius * 100,\n centimetres: earthRadius * 100,\n degrees: 360 / (2 * Math.PI),\n feet: earthRadius * 3.28084,\n inches: earthRadius * 39.37,\n kilometers: earthRadius / 1e3,\n kilometres: earthRadius / 1e3,\n meters: earthRadius,\n metres: earthRadius,\n miles: earthRadius / 1609.344,\n millimeters: earthRadius * 1e3,\n millimetres: earthRadius * 1e3,\n nauticalmiles: earthRadius / 1852,\n radians: 1,\n yards: earthRadius * 1.0936\n};\nvar areaFactors = {\n acres: 247105e-9,\n centimeters: 1e4,\n centimetres: 1e4,\n feet: 10.763910417,\n hectares: 1e-4,\n inches: 1550.003100006,\n kilometers: 1e-6,\n kilometres: 1e-6,\n meters: 1,\n metres: 1,\n miles: 386e-9,\n nauticalmiles: 29155334959812285e-23,\n millimeters: 1e6,\n millimetres: 1e6,\n yards: 1.195990046\n};\nfunction feature(geom, properties, options = {}) {\n const feat = { type: \"Feature\" };\n if (options.id === 0 || options.id) {\n feat.id = options.id;\n }\n if (options.bbox) {\n feat.bbox = options.bbox;\n }\n feat.properties = properties || {};\n feat.geometry = geom;\n return feat;\n}\nfunction geometry(type, coordinates, _options = {}) {\n switch (type) {\n case \"Point\":\n return point(coordinates).geometry;\n case \"LineString\":\n return lineString(coordinates).geometry;\n case \"Polygon\":\n return polygon(coordinates).geometry;\n case \"MultiPoint\":\n return multiPoint(coordinates).geometry;\n case \"MultiLineString\":\n return multiLineString(coordinates).geometry;\n case \"MultiPolygon\":\n return multiPolygon(coordinates).geometry;\n default:\n throw new Error(type + \" is invalid\");\n }\n}\nfunction point(coordinates, properties, options = {}) {\n if (!coordinates) {\n throw new Error(\"coordinates is required\");\n }\n if (!Array.isArray(coordinates)) {\n throw new Error(\"coordinates must be an Array\");\n }\n if (coordinates.length < 2) {\n throw new Error(\"coordinates must be at least 2 numbers long\");\n }\n if (!isNumber(coordinates[0]) || !isNumber(coordinates[1])) {\n throw new Error(\"coordinates must contain numbers\");\n }\n const geom = {\n type: \"Point\",\n coordinates\n };\n return feature(geom, properties, options);\n}\nfunction points(coordinates, properties, options = {}) {\n return featureCollection(\n coordinates.map((coords) => {\n return point(coords, properties);\n }),\n options\n );\n}\nfunction polygon(coordinates, properties, options = {}) {\n for (const ring of coordinates) {\n if (ring.length < 4) {\n throw new Error(\n \"Each LinearRing of a Polygon must have 4 or more Positions.\"\n );\n }\n if (ring[ring.length - 1].length !== ring[0].length) {\n throw new Error(\"First and last Position are not equivalent.\");\n }\n for (let j = 0; j < ring[ring.length - 1].length; j++) {\n if (ring[ring.length - 1][j] !== ring[0][j]) {\n throw new Error(\"First and last Position are not equivalent.\");\n }\n }\n }\n const geom = {\n type: \"Polygon\",\n coordinates\n };\n return feature(geom, properties, options);\n}\nfunction polygons(coordinates, properties, options = {}) {\n return featureCollection(\n coordinates.map((coords) => {\n return polygon(coords, properties);\n }),\n options\n );\n}\nfunction lineString(coordinates, properties, options = {}) {\n if (coordinates.length < 2) {\n throw new Error(\"coordinates must be an array of two or more positions\");\n }\n const geom = {\n type: \"LineString\",\n coordinates\n };\n return feature(geom, properties, options);\n}\nfunction lineStrings(coordinates, properties, options = {}) {\n return featureCollection(\n coordinates.map((coords) => {\n return lineString(coords, properties);\n }),\n options\n );\n}\nfunction featureCollection(features, options = {}) {\n const fc = { type: \"FeatureCollection\" };\n if (options.id) {\n fc.id = options.id;\n }\n if (options.bbox) {\n fc.bbox = options.bbox;\n }\n fc.features = features;\n return fc;\n}\nfunction multiLineString(coordinates, properties, options = {}) {\n const geom = {\n type: \"MultiLineString\",\n coordinates\n };\n return feature(geom, properties, options);\n}\nfunction multiPoint(coordinates, properties, options = {}) {\n const geom = {\n type: \"MultiPoint\",\n coordinates\n };\n return feature(geom, properties, options);\n}\nfunction multiPolygon(coordinates, properties, options = {}) {\n const geom = {\n type: \"MultiPolygon\",\n coordinates\n };\n return feature(geom, properties, options);\n}\nfunction geometryCollection(geometries, properties, options = {}) {\n const geom = {\n type: \"GeometryCollection\",\n geometries\n };\n return feature(geom, properties, options);\n}\nfunction round(num, precision = 0) {\n if (precision && !(precision >= 0)) {\n throw new Error(\"precision must be a positive number\");\n }\n const multiplier = Math.pow(10, precision || 0);\n return Math.round(num * multiplier) / multiplier;\n}\nfunction radiansToLength(radians, units = \"kilometers\") {\n const factor = factors[units];\n if (!factor) {\n throw new Error(units + \" units is invalid\");\n }\n return radians * factor;\n}\nfunction lengthToRadians(distance, units = \"kilometers\") {\n const factor = factors[units];\n if (!factor) {\n throw new Error(units + \" units is invalid\");\n }\n return distance / factor;\n}\nfunction lengthToDegrees(distance, units) {\n return radiansToDegrees(lengthToRadians(distance, units));\n}\nfunction bearingToAzimuth(bearing) {\n let angle = bearing % 360;\n if (angle < 0) {\n angle += 360;\n }\n return angle;\n}\nfunction azimuthToBearing(angle) {\n angle = angle % 360;\n if (angle > 180) {\n return angle - 360;\n } else if (angle < -180) {\n return angle + 360;\n }\n return angle;\n}\nfunction radiansToDegrees(radians) {\n const normalisedRadians = radians % (2 * Math.PI);\n return normalisedRadians * 180 / Math.PI;\n}\nfunction degreesToRadians(degrees) {\n const normalisedDegrees = degrees % 360;\n return normalisedDegrees * Math.PI / 180;\n}\nfunction convertLength(length, originalUnit = \"kilometers\", finalUnit = \"kilometers\") {\n if (!(length >= 0)) {\n throw new Error(\"length must be a positive number\");\n }\n return radiansToLength(lengthToRadians(length, originalUnit), finalUnit);\n}\nfunction convertArea(area, originalUnit = \"meters\", finalUnit = \"kilometers\") {\n if (!(area >= 0)) {\n throw new Error(\"area must be a positive number\");\n }\n const startFactor = areaFactors[originalUnit];\n if (!startFactor) {\n throw new Error(\"invalid original units\");\n }\n const finalFactor = areaFactors[finalUnit];\n if (!finalFactor) {\n throw new Error(\"invalid final units\");\n }\n return area / startFactor * finalFactor;\n}\nfunction isNumber(num) {\n return !isNaN(num) && num !== null && !Array.isArray(num);\n}\nfunction isObject(input) {\n return input !== null && typeof input === \"object\" && !Array.isArray(input);\n}\nfunction validateBBox(bbox) {\n if (!bbox) {\n throw new Error(\"bbox is required\");\n }\n if (!Array.isArray(bbox)) {\n throw new Error(\"bbox must be an Array\");\n }\n if (bbox.length !== 4 && bbox.length !== 6) {\n throw new Error(\"bbox must be an Array of 4 or 6 numbers\");\n }\n bbox.forEach((num) => {\n if (!isNumber(num)) {\n throw new Error(\"bbox must only contain numbers\");\n }\n });\n}\nfunction validateId(id) {\n if (!id) {\n throw new Error(\"id is required\");\n }\n if ([\"string\", \"number\"].indexOf(typeof id) === -1) {\n throw new Error(\"id must be a number or a string\");\n }\n}\nexport {\n areaFactors,\n azimuthToBearing,\n bearingToAzimuth,\n convertArea,\n convertLength,\n degreesToRadians,\n earthRadius,\n factors,\n feature,\n featureCollection,\n geometry,\n geometryCollection,\n isNumber,\n isObject,\n lengthToDegrees,\n lengthToRadians,\n lineString,\n lineStrings,\n multiLineString,\n multiPoint,\n multiPolygon,\n point,\n points,\n polygon,\n polygons,\n radiansToDegrees,\n radiansToLength,\n round,\n validateBBox,\n validateId\n};\n//# sourceMappingURL=index.js.map","// index.ts\nimport { isNumber } from \"@turf/helpers\";\nfunction getCoord(coord) {\n if (!coord) {\n throw new Error(\"coord is required\");\n }\n if (!Array.isArray(coord)) {\n if (coord.type === \"Feature\" && coord.geometry !== null && coord.geometry.type === \"Point\") {\n return [...coord.geometry.coordinates];\n }\n if (coord.type === \"Point\") {\n return [...coord.coordinates];\n }\n }\n if (Array.isArray(coord) && coord.length >= 2 && !Array.isArray(coord[0]) && !Array.isArray(coord[1])) {\n return [...coord];\n }\n throw new Error(\"coord must be GeoJSON Point or an Array of numbers\");\n}\nfunction getCoords(coords) {\n if (Array.isArray(coords)) {\n return coords;\n }\n if (coords.type === \"Feature\") {\n if (coords.geometry !== null) {\n return coords.geometry.coordinates;\n }\n } else {\n if (coords.coordinates) {\n return coords.coordinates;\n }\n }\n throw new Error(\n \"coords must be GeoJSON Feature, Geometry Object or an Array\"\n );\n}\nfunction containsNumber(coordinates) {\n if (coordinates.length > 1 && isNumber(coordinates[0]) && isNumber(coordinates[1])) {\n return true;\n }\n if (Array.isArray(coordinates[0]) && coordinates[0].length) {\n return containsNumber(coordinates[0]);\n }\n throw new Error(\"coordinates must only contain numbers\");\n}\nfunction geojsonType(value, type, name) {\n if (!type || !name) {\n throw new Error(\"type and name required\");\n }\n if (!value || value.type !== type) {\n throw new Error(\n \"Invalid input to \" + name + \": must be a \" + type + \", given \" + value.type\n );\n }\n}\nfunction featureOf(feature, type, name) {\n if (!feature) {\n throw new Error(\"No feature passed\");\n }\n if (!name) {\n throw new Error(\".featureOf() requires a name\");\n }\n if (!feature || feature.type !== \"Feature\" || !feature.geometry) {\n throw new Error(\n \"Invalid input to \" + name + \", Feature with geometry required\"\n );\n }\n if (!feature.geometry || feature.geometry.type !== type) {\n throw new Error(\n \"Invalid input to \" + name + \": must be a \" + type + \", given \" + feature.geometry.type\n );\n }\n}\nfunction collectionOf(featureCollection, type, name) {\n if (!featureCollection) {\n throw new Error(\"No featureCollection passed\");\n }\n if (!name) {\n throw new Error(\".collectionOf() requires a name\");\n }\n if (!featureCollection || featureCollection.type !== \"FeatureCollection\") {\n throw new Error(\n \"Invalid input to \" + name + \", FeatureCollection required\"\n );\n }\n for (const feature of featureCollection.features) {\n if (!feature || feature.type !== \"Feature\" || !feature.geometry) {\n throw new Error(\n \"Invalid input to \" + name + \", Feature with geometry required\"\n );\n }\n if (!feature.geometry || feature.geometry.type !== type) {\n throw new Error(\n \"Invalid input to \" + name + \": must be a \" + type + \", given \" + feature.geometry.type\n );\n }\n }\n}\nfunction getGeom(geojson) {\n if (geojson.type === \"Feature\") {\n return geojson.geometry;\n }\n return geojson;\n}\nfunction getType(geojson, _name) {\n if (geojson.type === \"FeatureCollection\") {\n return \"FeatureCollection\";\n }\n if (geojson.type === \"GeometryCollection\") {\n return \"GeometryCollection\";\n }\n if (geojson.type === \"Feature\" && geojson.geometry !== null) {\n return geojson.geometry.type;\n }\n return geojson.type;\n}\nexport {\n collectionOf,\n containsNumber,\n featureOf,\n geojsonType,\n getCoord,\n getCoords,\n getGeom,\n getType\n};\n//# sourceMappingURL=index.js.map","// index.ts\nimport { getCoord } from \"@turf/invariant\";\nimport { radiansToLength, degreesToRadians } from \"@turf/helpers\";\nfunction distance(from, to, options = {}) {\n var coordinates1 = getCoord(from);\n var coordinates2 = getCoord(to);\n var dLat = degreesToRadians(coordinates2[1] - coordinates1[1]);\n var dLon = degreesToRadians(coordinates2[0] - coordinates1[0]);\n var lat1 = degreesToRadians(coordinates1[1]);\n var lat2 = degreesToRadians(coordinates2[1]);\n var a = Math.pow(Math.sin(dLat / 2), 2) + Math.pow(Math.sin(dLon / 2), 2) * Math.cos(lat1) * Math.cos(lat2);\n return radiansToLength(\n 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)),\n options.units\n );\n}\nvar turf_distance_default = distance;\nexport {\n turf_distance_default as default,\n distance\n};\n//# sourceMappingURL=index.js.map","// index.js\nimport { feature, point, lineString, isObject } from \"@turf/helpers\";\nfunction coordEach(geojson, callback, excludeWrapCoord) {\n if (geojson === null) return;\n var j, k, l, geometry, stopG, coords, geometryMaybeCollection, wrapShrink = 0, coordIndex = 0, isGeometryCollection, type = geojson.type, isFeatureCollection = type === \"FeatureCollection\", isFeature = type === \"Feature\", stop = isFeatureCollection ? geojson.features.length : 1;\n for (var featureIndex = 0; featureIndex < stop; featureIndex++) {\n geometryMaybeCollection = isFeatureCollection ? geojson.features[featureIndex].geometry : isFeature ? geojson.geometry : geojson;\n isGeometryCollection = geometryMaybeCollection ? geometryMaybeCollection.type === \"GeometryCollection\" : false;\n stopG = isGeometryCollection ? geometryMaybeCollection.geometries.length : 1;\n for (var geomIndex = 0; geomIndex < stopG; geomIndex++) {\n var multiFeatureIndex = 0;\n var geometryIndex = 0;\n geometry = isGeometryCollection ? geometryMaybeCollection.geometries[geomIndex] : geometryMaybeCollection;\n if (geometry === null) continue;\n coords = geometry.coordinates;\n var geomType = geometry.type;\n wrapShrink = excludeWrapCoord && (geomType === \"Polygon\" || geomType === \"MultiPolygon\") ? 1 : 0;\n switch (geomType) {\n case null:\n break;\n case \"Point\":\n if (callback(\n coords,\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false)\n return false;\n coordIndex++;\n multiFeatureIndex++;\n break;\n case \"LineString\":\n case \"MultiPoint\":\n for (j = 0; j < coords.length; j++) {\n if (callback(\n coords[j],\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false)\n return false;\n coordIndex++;\n if (geomType === \"MultiPoint\") multiFeatureIndex++;\n }\n if (geomType === \"LineString\") multiFeatureIndex++;\n break;\n case \"Polygon\":\n case \"MultiLineString\":\n for (j = 0; j < coords.length; j++) {\n for (k = 0; k < coords[j].length - wrapShrink; k++) {\n if (callback(\n coords[j][k],\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false)\n return false;\n coordIndex++;\n }\n if (geomType === \"MultiLineString\") multiFeatureIndex++;\n if (geomType === \"Polygon\") geometryIndex++;\n }\n if (geomType === \"Polygon\") multiFeatureIndex++;\n break;\n case \"MultiPolygon\":\n for (j = 0; j < coords.length; j++) {\n geometryIndex = 0;\n for (k = 0; k < coords[j].length; k++) {\n for (l = 0; l < coords[j][k].length - wrapShrink; l++) {\n if (callback(\n coords[j][k][l],\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false)\n return false;\n coordIndex++;\n }\n geometryIndex++;\n }\n multiFeatureIndex++;\n }\n break;\n case \"GeometryCollection\":\n for (j = 0; j < geometry.geometries.length; j++)\n if (coordEach(geometry.geometries[j], callback, excludeWrapCoord) === false)\n return false;\n break;\n default:\n throw new Error(\"Unknown Geometry Type\");\n }\n }\n }\n}\nfunction coordReduce(geojson, callback, initialValue, excludeWrapCoord) {\n var previousValue = initialValue;\n coordEach(\n geojson,\n function(currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {\n if (coordIndex === 0 && initialValue === void 0)\n previousValue = currentCoord;\n else\n previousValue = callback(\n previousValue,\n currentCoord,\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n );\n },\n excludeWrapCoord\n );\n return previousValue;\n}\nfunction propEach(geojson, callback) {\n var i;\n switch (geojson.type) {\n case \"FeatureCollection\":\n for (i = 0; i < geojson.features.length; i++) {\n if (callback(geojson.features[i].properties, i) === false) break;\n }\n break;\n case \"Feature\":\n callback(geojson.properties, 0);\n break;\n }\n}\nfunction propReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n propEach(geojson, function(currentProperties, featureIndex) {\n if (featureIndex === 0 && initialValue === void 0)\n previousValue = currentProperties;\n else\n previousValue = callback(previousValue, currentProperties, featureIndex);\n });\n return previousValue;\n}\nfunction featureEach(geojson, callback) {\n if (geojson.type === \"Feature\") {\n callback(geojson, 0);\n } else if (geojson.type === \"FeatureCollection\") {\n for (var i = 0; i < geojson.features.length; i++) {\n if (callback(geojson.features[i], i) === false) break;\n }\n }\n}\nfunction featureReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n featureEach(geojson, function(currentFeature, featureIndex) {\n if (featureIndex === 0 && initialValue === void 0)\n previousValue = currentFeature;\n else previousValue = callback(previousValue, currentFeature, featureIndex);\n });\n return previousValue;\n}\nfunction coordAll(geojson) {\n var coords = [];\n coordEach(geojson, function(coord) {\n coords.push(coord);\n });\n return coords;\n}\nfunction geomEach(geojson, callback) {\n var i, j, g, geometry, stopG, geometryMaybeCollection, isGeometryCollection, featureProperties, featureBBox, featureId, featureIndex = 0, isFeatureCollection = geojson.type === \"FeatureCollection\", isFeature = geojson.type === \"Feature\", stop = isFeatureCollection ? geojson.features.length : 1;\n for (i = 0; i < stop; i++) {\n geometryMaybeCollection = isFeatureCollection ? geojson.features[i].geometry : isFeature ? geojson.geometry : geojson;\n featureProperties = isFeatureCollection ? geojson.features[i].properties : isFeature ? geojson.properties : {};\n featureBBox = isFeatureCollection ? geojson.features[i].bbox : isFeature ? geojson.bbox : void 0;\n featureId = isFeatureCollection ? geojson.features[i].id : isFeature ? geojson.id : void 0;\n isGeometryCollection = geometryMaybeCollection ? geometryMaybeCollection.type === \"GeometryCollection\" : false;\n stopG = isGeometryCollection ? geometryMaybeCollection.geometries.length : 1;\n for (g = 0; g < stopG; g++) {\n geometry = isGeometryCollection ? geometryMaybeCollection.geometries[g] : geometryMaybeCollection;\n if (geometry === null) {\n if (callback(\n null,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) === false)\n return false;\n continue;\n }\n switch (geometry.type) {\n case \"Point\":\n case \"LineString\":\n case \"MultiPoint\":\n case \"Polygon\":\n case \"MultiLineString\":\n case \"MultiPolygon\": {\n if (callback(\n geometry,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) === false)\n return false;\n break;\n }\n case \"GeometryCollection\": {\n for (j = 0; j < geometry.geometries.length; j++) {\n if (callback(\n geometry.geometries[j],\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) === false)\n return false;\n }\n break;\n }\n default:\n throw new Error(\"Unknown Geometry Type\");\n }\n }\n featureIndex++;\n }\n}\nfunction geomReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n geomEach(\n geojson,\n function(currentGeometry, featureIndex, featureProperties, featureBBox, featureId) {\n if (featureIndex === 0 && initialValue === void 0)\n previousValue = currentGeometry;\n else\n previousValue = callback(\n previousValue,\n currentGeometry,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n );\n }\n );\n return previousValue;\n}\nfunction flattenEach(geojson, callback) {\n geomEach(geojson, function(geometry, featureIndex, properties, bbox, id) {\n var type = geometry === null ? null : geometry.type;\n switch (type) {\n case null:\n case \"Point\":\n case \"LineString\":\n case \"Polygon\":\n if (callback(\n feature(geometry, properties, { bbox, id }),\n featureIndex,\n 0\n ) === false)\n return false;\n return;\n }\n var geomType;\n switch (type) {\n case \"MultiPoint\":\n geomType = \"Point\";\n break;\n case \"MultiLineString\":\n geomType = \"LineString\";\n break;\n case \"MultiPolygon\":\n geomType = \"Polygon\";\n break;\n }\n for (var multiFeatureIndex = 0; multiFeatureIndex < geometry.coordinates.length; multiFeatureIndex++) {\n var coordinate = geometry.coordinates[multiFeatureIndex];\n var geom = {\n type: geomType,\n coordinates: coordinate\n };\n if (callback(feature(geom, properties), featureIndex, multiFeatureIndex) === false)\n return false;\n }\n });\n}\nfunction flattenReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n flattenEach(\n geojson,\n function(currentFeature, featureIndex, multiFeatureIndex) {\n if (featureIndex === 0 && multiFeatureIndex === 0 && initialValue === void 0)\n previousValue = currentFeature;\n else\n previousValue = callback(\n previousValue,\n currentFeature,\n featureIndex,\n multiFeatureIndex\n );\n }\n );\n return previousValue;\n}\nfunction segmentEach(geojson, callback) {\n flattenEach(geojson, function(feature2, featureIndex, multiFeatureIndex) {\n var segmentIndex = 0;\n if (!feature2.geometry) return;\n var type = feature2.geometry.type;\n if (type === \"Point\" || type === \"MultiPoint\") return;\n var previousCoords;\n var previousFeatureIndex = 0;\n var previousMultiIndex = 0;\n var prevGeomIndex = 0;\n if (coordEach(\n feature2,\n function(currentCoord, coordIndex, featureIndexCoord, multiPartIndexCoord, geometryIndex) {\n if (previousCoords === void 0 || featureIndex > previousFeatureIndex || multiPartIndexCoord > previousMultiIndex || geometryIndex > prevGeomIndex) {\n previousCoords = currentCoord;\n previousFeatureIndex = featureIndex;\n previousMultiIndex = multiPartIndexCoord;\n prevGeomIndex = geometryIndex;\n segmentIndex = 0;\n return;\n }\n var currentSegment = lineString(\n [previousCoords, currentCoord],\n feature2.properties\n );\n if (callback(\n currentSegment,\n featureIndex,\n multiFeatureIndex,\n geometryIndex,\n segmentIndex\n ) === false)\n return false;\n segmentIndex++;\n previousCoords = currentCoord;\n }\n ) === false)\n return false;\n });\n}\nfunction segmentReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n var started = false;\n segmentEach(\n geojson,\n function(currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) {\n if (started === false && initialValue === void 0)\n previousValue = currentSegment;\n else\n previousValue = callback(\n previousValue,\n currentSegment,\n featureIndex,\n multiFeatureIndex,\n geometryIndex,\n segmentIndex\n );\n started = true;\n }\n );\n return previousValue;\n}\nfunction lineEach(geojson, callback) {\n if (!geojson) throw new Error(\"geojson is required\");\n flattenEach(geojson, function(feature2, featureIndex, multiFeatureIndex) {\n if (feature2.geometry === null) return;\n var type = feature2.geometry.type;\n var coords = feature2.geometry.coordinates;\n switch (type) {\n case \"LineString\":\n if (callback(feature2, featureIndex, multiFeatureIndex, 0, 0) === false)\n return false;\n break;\n case \"Polygon\":\n for (var geometryIndex = 0; geometryIndex < coords.length; geometryIndex++) {\n if (callback(\n lineString(coords[geometryIndex], feature2.properties),\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false)\n return false;\n }\n break;\n }\n });\n}\nfunction lineReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n lineEach(\n geojson,\n function(currentLine, featureIndex, multiFeatureIndex, geometryIndex) {\n if (featureIndex === 0 && initialValue === void 0)\n previousValue = currentLine;\n else\n previousValue = callback(\n previousValue,\n currentLine,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n );\n }\n );\n return previousValue;\n}\nfunction findSegment(geojson, options) {\n options = options || {};\n if (!isObject(options)) throw new Error(\"options is invalid\");\n var featureIndex = options.featureIndex || 0;\n var multiFeatureIndex = options.multiFeatureIndex || 0;\n var geometryIndex = options.geometryIndex || 0;\n var segmentIndex = options.segmentIndex || 0;\n var properties = options.properties;\n var geometry;\n switch (geojson.type) {\n case \"FeatureCollection\":\n if (featureIndex < 0)\n featureIndex = geojson.features.length + featureIndex;\n properties = properties || geojson.features[featureIndex].properties;\n geometry = geojson.features[featureIndex].geometry;\n break;\n case \"Feature\":\n properties = properties || geojson.properties;\n geometry = geojson.geometry;\n break;\n case \"Point\":\n case \"MultiPoint\":\n return null;\n case \"LineString\":\n case \"Polygon\":\n case \"MultiLineString\":\n case \"MultiPolygon\":\n geometry = geojson;\n break;\n default:\n throw new Error(\"geojson is invalid\");\n }\n if (geometry === null) return null;\n var coords = geometry.coordinates;\n switch (geometry.type) {\n case \"Point\":\n case \"MultiPoint\":\n return null;\n case \"LineString\":\n if (segmentIndex < 0) segmentIndex = coords.length + segmentIndex - 1;\n return lineString(\n [coords[segmentIndex], coords[segmentIndex + 1]],\n properties,\n options\n );\n case \"Polygon\":\n if (geometryIndex < 0) geometryIndex = coords.length + geometryIndex;\n if (segmentIndex < 0)\n segmentIndex = coords[geometryIndex].length + segmentIndex - 1;\n return lineString(\n [\n coords[geometryIndex][segmentIndex],\n coords[geometryIndex][segmentIndex + 1]\n ],\n properties,\n options\n );\n case \"MultiLineString\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n if (segmentIndex < 0)\n segmentIndex = coords[multiFeatureIndex].length + segmentIndex - 1;\n return lineString(\n [\n coords[multiFeatureIndex][segmentIndex],\n coords[multiFeatureIndex][segmentIndex + 1]\n ],\n properties,\n options\n );\n case \"MultiPolygon\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n if (geometryIndex < 0)\n geometryIndex = coords[multiFeatureIndex].length + geometryIndex;\n if (segmentIndex < 0)\n segmentIndex = coords[multiFeatureIndex][geometryIndex].length - segmentIndex - 1;\n return lineString(\n [\n coords[multiFeatureIndex][geometryIndex][segmentIndex],\n coords[multiFeatureIndex][geometryIndex][segmentIndex + 1]\n ],\n properties,\n options\n );\n }\n throw new Error(\"geojson is invalid\");\n}\nfunction findPoint(geojson, options) {\n options = options || {};\n if (!isObject(options)) throw new Error(\"options is invalid\");\n var featureIndex = options.featureIndex || 0;\n var multiFeatureIndex = options.multiFeatureIndex || 0;\n var geometryIndex = options.geometryIndex || 0;\n var coordIndex = options.coordIndex || 0;\n var properties = options.properties;\n var geometry;\n switch (geojson.type) {\n case \"FeatureCollection\":\n if (featureIndex < 0)\n featureIndex = geojson.features.length + featureIndex;\n properties = properties || geojson.features[featureIndex].properties;\n geometry = geojson.features[featureIndex].geometry;\n break;\n case \"Feature\":\n properties = properties || geojson.properties;\n geometry = geojson.geometry;\n break;\n case \"Point\":\n case \"MultiPoint\":\n return null;\n case \"LineString\":\n case \"Polygon\":\n case \"MultiLineString\":\n case \"MultiPolygon\":\n geometry = geojson;\n break;\n default:\n throw new Error(\"geojson is invalid\");\n }\n if (geometry === null) return null;\n var coords = geometry.coordinates;\n switch (geometry.type) {\n case \"Point\":\n return point(coords, properties, options);\n case \"MultiPoint\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n return point(coords[multiFeatureIndex], properties, options);\n case \"LineString\":\n if (coordIndex < 0) coordIndex = coords.length + coordIndex;\n return point(coords[coordIndex], properties, options);\n case \"Polygon\":\n if (geometryIndex < 0) geometryIndex = coords.length + geometryIndex;\n if (coordIndex < 0)\n coordIndex = coords[geometryIndex].length + coordIndex;\n return point(coords[geometryIndex][coordIndex], properties, options);\n case \"MultiLineString\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n if (coordIndex < 0)\n coordIndex = coords[multiFeatureIndex].length + coordIndex;\n return point(coords[multiFeatureIndex][coordIndex], properties, options);\n case \"MultiPolygon\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n if (geometryIndex < 0)\n geometryIndex = coords[multiFeatureIndex].length + geometryIndex;\n if (coordIndex < 0)\n coordIndex = coords[multiFeatureIndex][geometryIndex].length - coordIndex;\n return point(\n coords[multiFeatureIndex][geometryIndex][coordIndex],\n properties,\n options\n );\n }\n throw new Error(\"geojson is invalid\");\n}\nexport {\n coordAll,\n coordEach,\n coordReduce,\n featureEach,\n featureReduce,\n findPoint,\n findSegment,\n flattenEach,\n flattenReduce,\n geomEach,\n geomReduce,\n lineEach,\n lineReduce,\n propEach,\n propReduce,\n segmentEach,\n segmentReduce\n};\n//# sourceMappingURL=index.js.map","// index.ts\nimport { earthRadius } from \"@turf/helpers\";\nimport { geomReduce } from \"@turf/meta\";\nfunction area(geojson) {\n return geomReduce(\n geojson,\n (value, geom) => {\n return value + calculateArea(geom);\n },\n 0\n );\n}\nfunction calculateArea(geom) {\n let total = 0;\n let i;\n switch (geom.type) {\n case \"Polygon\":\n return polygonArea(geom.coordinates);\n case \"MultiPolygon\":\n for (i = 0; i < geom.coordinates.length; i++) {\n total += polygonArea(geom.coordinates[i]);\n }\n return total;\n case \"Point\":\n case \"MultiPoint\":\n case \"LineString\":\n case \"MultiLineString\":\n return 0;\n }\n return 0;\n}\nfunction polygonArea(coords) {\n let total = 0;\n if (coords && coords.length > 0) {\n total += Math.abs(ringArea(coords[0]));\n for (let i = 1; i < coords.length; i++) {\n total -= Math.abs(ringArea(coords[i]));\n }\n }\n return total;\n}\nvar FACTOR = earthRadius * earthRadius / 2;\nvar PI_OVER_180 = Math.PI / 180;\nfunction ringArea(coords) {\n const coordsLength = coords.length - 1;\n if (coordsLength <= 2) return 0;\n let total = 0;\n let i = 0;\n while (i < coordsLength) {\n const lower = coords[i];\n const middle = coords[i + 1 === coordsLength ? 0 : i + 1];\n const upper = coords[i + 2 >= coordsLength ? (i + 2) % coordsLength : i + 2];\n const lowerX = lower[0] * PI_OVER_180;\n const middleY = middle[1] * PI_OVER_180;\n const upperX = upper[0] * PI_OVER_180;\n total += (upperX - lowerX) * Math.sin(middleY);\n i++;\n }\n return total * FACTOR;\n}\nvar turf_area_default = area;\nexport {\n area,\n turf_area_default as default\n};\n//# sourceMappingURL=index.js.map","// index.ts\nimport { coordEach } from \"@turf/meta\";\nfunction bbox(geojson, options = {}) {\n if (geojson.bbox != null && true !== options.recompute) {\n return geojson.bbox;\n }\n const result = [Infinity, Infinity, -Infinity, -Infinity];\n coordEach(geojson, (coord) => {\n if (result[0] > coord[0]) {\n result[0] = coord[0];\n }\n if (result[1] > coord[1]) {\n result[1] = coord[1];\n }\n if (result[2] < coord[0]) {\n result[2] = coord[0];\n }\n if (result[3] < coord[1]) {\n result[3] = coord[1];\n }\n });\n return result;\n}\nvar turf_bbox_default = bbox;\nexport {\n bbox,\n turf_bbox_default as default\n};\n//# sourceMappingURL=index.js.map","// index.ts\nimport { feature } from \"@turf/helpers\";\nimport { getCoords, getType } from \"@turf/invariant\";\nfunction cleanCoords(geojson, options = {}) {\n var mutate = typeof options === \"object\" ? options.mutate : options;\n if (!geojson) throw new Error(\"geojson is required\");\n var type = getType(geojson);\n var newCoords = [];\n switch (type) {\n case \"LineString\":\n newCoords = cleanLine(geojson, type);\n break;\n case \"MultiLineString\":\n case \"Polygon\":\n getCoords(geojson).forEach(function(line) {\n newCoords.push(cleanLine(line, type));\n });\n break;\n case \"MultiPolygon\":\n getCoords(geojson).forEach(function(polygons) {\n var polyPoints = [];\n polygons.forEach(function(ring) {\n polyPoints.push(cleanLine(ring, type));\n });\n newCoords.push(polyPoints);\n });\n break;\n case \"Point\":\n return geojson;\n case \"MultiPoint\":\n var existing = {};\n getCoords(geojson).forEach(function(coord) {\n var key = coord.join(\"-\");\n if (!Object.prototype.hasOwnProperty.call(existing, key)) {\n newCoords.push(coord);\n existing[key] = true;\n }\n });\n break;\n default:\n throw new Error(type + \" geometry not supported\");\n }\n if (geojson.coordinates) {\n if (mutate === true) {\n geojson.coordinates = newCoords;\n return geojson;\n }\n return { type, coordinates: newCoords };\n } else {\n if (mutate === true) {\n geojson.geometry.coordinates = newCoords;\n return geojson;\n }\n return feature({ type, coordinates: newCoords }, geojson.properties, {\n bbox: geojson.bbox,\n id: geojson.id\n });\n }\n}\nfunction cleanLine(line, type) {\n var points = getCoords(line);\n if (points.length === 2 && !equals(points[0], points[1])) return points;\n var newPoints = [];\n var secondToLast = points.length - 1;\n var newPointsLength = newPoints.length;\n newPoints.push(points[0]);\n for (var i = 1; i < secondToLast; i++) {\n var prevAddedPoint = newPoints[newPoints.length - 1];\n if (points[i][0] === prevAddedPoint[0] && points[i][1] === prevAddedPoint[1])\n continue;\n else {\n newPoints.push(points[i]);\n newPointsLength = newPoints.length;\n if (newPointsLength > 2) {\n if (isPointOnLineSegment(\n newPoints[newPointsLength - 3],\n newPoints[newPointsLength - 1],\n newPoints[newPointsLength - 2]\n ))\n newPoints.splice(newPoints.length - 2, 1);\n }\n }\n }\n newPoints.push(points[points.length - 1]);\n newPointsLength = newPoints.length;\n if ((type === \"Polygon\" || type === \"MultiPolygon\") && equals(points[0], points[points.length - 1]) && newPointsLength < 4) {\n throw new Error(\"invalid polygon\");\n }\n if (type === \"LineString\" && newPointsLength < 3) {\n return newPoints;\n }\n if (isPointOnLineSegment(\n newPoints[newPointsLength - 3],\n newPoints[newPointsLength - 1],\n newPoints[newPointsLength - 2]\n ))\n newPoints.splice(newPoints.length - 2, 1);\n return newPoints;\n}\nfunction equals(pt1, pt2) {\n return pt1[0] === pt2[0] && pt1[1] === pt2[1];\n}\nfunction isPointOnLineSegment(start, end, point) {\n var x = point[0], y = point[1];\n var startX = start[0], startY = start[1];\n var endX = end[0], endY = end[1];\n var dxc = x - startX;\n var dyc = y - startY;\n var dxl = endX - startX;\n var dyl = endY - startY;\n var cross = dxc * dyl - dyc * dxl;\n if (cross !== 0) return false;\n else if (Math.abs(dxl) >= Math.abs(dyl))\n return dxl > 0 ? startX <= x && x <= endX : endX <= x && x <= startX;\n else return dyl > 0 ? startY <= y && y <= endY : endY <= y && y <= startY;\n}\nvar turf_clean_coords_default = cleanCoords;\nexport {\n cleanCoords,\n turf_clean_coords_default as default\n};\n//# sourceMappingURL=index.js.map","// index.ts\nimport { point } from \"@turf/helpers\";\nimport { coordEach } from \"@turf/meta\";\nfunction centroid(geojson, options = {}) {\n let xSum = 0;\n let ySum = 0;\n let len = 0;\n coordEach(\n geojson,\n function(coord) {\n xSum += coord[0];\n ySum += coord[1];\n len++;\n },\n true\n );\n return point([xSum / len, ySum / len], options.properties);\n}\nvar turf_centroid_default = centroid;\nexport {\n centroid,\n turf_centroid_default as default\n};\n//# sourceMappingURL=index.js.map","// index.ts\nfunction clone(geojson) {\n if (!geojson) {\n throw new Error(\"geojson is required\");\n }\n switch (geojson.type) {\n case \"Feature\":\n return cloneFeature(geojson);\n case \"FeatureCollection\":\n return cloneFeatureCollection(geojson);\n case \"Point\":\n case \"LineString\":\n case \"Polygon\":\n case \"MultiPoint\":\n case \"MultiLineString\":\n case \"MultiPolygon\":\n case \"GeometryCollection\":\n return cloneGeometry(geojson);\n default:\n throw new Error(\"unknown GeoJSON type\");\n }\n}\nfunction cloneFeature(geojson) {\n const cloned = { type: \"Feature\" };\n Object.keys(geojson).forEach((key) => {\n switch (key) {\n case \"type\":\n case \"properties\":\n case \"geometry\":\n return;\n default:\n cloned[key] = geojson[key];\n }\n });\n cloned.properties = cloneProperties(geojson.properties);\n if (geojson.geometry == null) {\n cloned.geometry = null;\n } else {\n cloned.geometry = cloneGeometry(geojson.geometry);\n }\n return cloned;\n}\nfunction cloneProperties(properties) {\n const cloned = {};\n if (!properties) {\n return cloned;\n }\n Object.keys(properties).forEach((key) => {\n const value = properties[key];\n if (typeof value === \"object\") {\n if (value === null) {\n cloned[key] = null;\n } else if (Array.isArray(value)) {\n cloned[key] = value.map((item) => {\n return item;\n });\n } else {\n cloned[key] = cloneProperties(value);\n }\n } else {\n cloned[key] = value;\n }\n });\n return cloned;\n}\nfunction cloneFeatureCollection(geojson) {\n const cloned = { type: \"FeatureCollection\" };\n Object.keys(geojson).forEach((key) => {\n switch (key) {\n case \"type\":\n case \"features\":\n return;\n default:\n cloned[key] = geojson[key];\n }\n });\n cloned.features = geojson.features.map((feature) => {\n return cloneFeature(feature);\n });\n return cloned;\n}\nfunction cloneGeometry(geometry) {\n const geom = { type: geometry.type };\n if (geometry.bbox) {\n geom.bbox = geometry.bbox;\n }\n if (geometry.type === \"GeometryCollection\") {\n geom.geometries = geometry.geometries.map((g) => {\n return cloneGeometry(g);\n });\n return geom;\n }\n geom.coordinates = deepSlice(geometry.coordinates);\n return geom;\n}\nfunction deepSlice(coords) {\n const cloned = coords;\n if (typeof cloned[0] !== \"object\") {\n return cloned.slice();\n }\n return cloned.map((coord) => {\n return deepSlice(coord);\n });\n}\nvar turf_clone_default = clone;\nexport {\n clone,\n cloneProperties,\n turf_clone_default as default\n};\n//# sourceMappingURL=index.js.map","// index.ts\nimport { distance } from \"@turf/distance\";\nimport { segmentReduce } from \"@turf/meta\";\nfunction length(geojson, options = {}) {\n return segmentReduce(\n geojson,\n (previousValue, segment) => {\n const coords = segment.geometry.coordinates;\n return previousValue + distance(coords[0], coords[1], options);\n },\n 0\n );\n}\nvar turf_length_default = length;\nexport {\n turf_length_default as default,\n length\n};\n//# sourceMappingURL=index.js.map","// index.ts\nimport { cleanCoords } from \"@turf/clean-coords\";\nimport { clone } from \"@turf/clone\";\nimport { geomEach } from \"@turf/meta\";\nimport { isObject } from \"@turf/helpers\";\n\n// lib/simplify.js\nfunction getSqDist(p1, p2) {\n var dx = p1[0] - p2[0], dy = p1[1] - p2[1];\n return dx * dx + dy * dy;\n}\nfunction getSqSegDist(p, p1, p2) {\n var x = p1[0], y = p1[1], dx = p2[0] - x, dy = p2[1] - y;\n if (dx !== 0 || dy !== 0) {\n var t = ((p[0] - x) * dx + (p[1] - y) * dy) / (dx * dx + dy * dy);\n if (t > 1) {\n x = p2[0];\n y = p2[1];\n } else if (t > 0) {\n x += dx * t;\n y += dy * t;\n }\n }\n dx = p[0] - x;\n dy = p[1] - y;\n return dx * dx + dy * dy;\n}\nfunction simplifyRadialDist(points, sqTolerance) {\n var prevPoint = points[0], newPoints = [prevPoint], point;\n for (var i = 1, len = points.length; i < len; i++) {\n point = points[i];\n if (getSqDist(point, prevPoint) > sqTolerance) {\n newPoints.push(point);\n prevPoint = point;\n }\n }\n if (prevPoint !== point) newPoints.push(point);\n return newPoints;\n}\nfunction simplifyDPStep(points, first, last, sqTolerance, simplified) {\n var maxSqDist = sqTolerance, index;\n for (var i = first + 1; i < last; i++) {\n var sqDist = getSqSegDist(points[i], points[first], points[last]);\n if (sqDist > maxSqDist) {\n index = i;\n maxSqDist = sqDist;\n }\n }\n if (maxSqDist > sqTolerance) {\n if (index - first > 1)\n simplifyDPStep(points, first, index, sqTolerance, simplified);\n simplified.push(points[index]);\n if (last - index > 1)\n simplifyDPStep(points, index, last, sqTolerance, simplified);\n }\n}\nfunction simplifyDouglasPeucker(points, sqTolerance) {\n var last = points.length - 1;\n var simplified = [points[0]];\n simplifyDPStep(points, 0, last, sqTolerance, simplified);\n simplified.push(points[last]);\n return simplified;\n}\nfunction simplify(points, tolerance, highestQuality) {\n if (points.length <= 2) return points;\n var sqTolerance = tolerance !== void 0 ? tolerance * tolerance : 1;\n points = highestQuality ? points : simplifyRadialDist(points, sqTolerance);\n points = simplifyDouglasPeucker(points, sqTolerance);\n return points;\n}\n\n// index.ts\nfunction simplify2(geojson, options = {}) {\n var _a, _b, _c;\n options = options != null ? options : {};\n if (!isObject(options)) throw new Error(\"options is invalid\");\n const tolerance = (_a = options.tolerance) != null ? _a : 1;\n const highQuality = (_b = options.highQuality) != null ? _b : false;\n const mutate = (_c = options.mutate) != null ? _c : false;\n if (!geojson) throw new Error(\"geojson is required\");\n if (tolerance && tolerance < 0) throw new Error(\"invalid tolerance\");\n if (mutate !== true) geojson = clone(geojson);\n geomEach(geojson, function(geom) {\n simplifyGeom(geom, tolerance, highQuality);\n });\n return geojson;\n}\nfunction simplifyGeom(geometry, tolerance, highQuality) {\n const type = geometry.type;\n if (type === \"Point\" || type === \"MultiPoint\") return geometry;\n cleanCoords(geometry, { mutate: true });\n if (type !== \"GeometryCollection\") {\n switch (type) {\n case \"LineString\":\n geometry.coordinates = simplify(\n geometry.coordinates,\n tolerance,\n highQuality\n );\n break;\n case \"MultiLineString\":\n geometry.coordinates = geometry.coordinates.map(\n (lines) => simplify(lines, tolerance, highQuality)\n );\n break;\n case \"Polygon\":\n geometry.coordinates = simplifyPolygon(\n geometry.coordinates,\n tolerance,\n highQuality\n );\n break;\n case \"MultiPolygon\":\n geometry.coordinates = geometry.coordinates.map(\n (rings) => simplifyPolygon(rings, tolerance, highQuality)\n );\n }\n }\n return geometry;\n}\nfunction simplifyPolygon(coordinates, tolerance, highQuality) {\n return coordinates.map(function(ring) {\n if (ring.length < 4) {\n throw new Error(\"invalid polygon\");\n }\n let ringTolerance = tolerance;\n let simpleRing = simplify(ring, ringTolerance, highQuality);\n while (!checkValidity(simpleRing)) {\n ringTolerance -= ringTolerance * 0.01;\n simpleRing = simplify(ring, ringTolerance, highQuality);\n }\n if (simpleRing[simpleRing.length - 1][0] !== simpleRing[0][0] || simpleRing[simpleRing.length - 1][1] !== simpleRing[0][1]) {\n simpleRing.push(simpleRing[0]);\n }\n return simpleRing;\n });\n}\nfunction checkValidity(ring) {\n if (ring.length < 3) return false;\n return !(ring.length === 3 && ring[2][0] === ring[0][0] && ring[2][1] === ring[0][1]);\n}\nvar turf_simplify_default = simplify2;\nexport {\n turf_simplify_default as default,\n simplify2 as simplify\n};\n//# sourceMappingURL=index.js.map"],"names":["earthRadius","factors","feature","geom","properties","options","feat","point","coordinates","isNumber","lineString","radiansToLength","radians","units","factor","degreesToRadians","degrees","num","isObject","input","getCoord","coord","getCoords","coords","getType","geojson","_name","distance","from","to","coordinates1","coordinates2","dLat","dLon","lat1","lat2","a","coordEach","callback","excludeWrapCoord","j","k","l","geometry","stopG","geometryMaybeCollection","wrapShrink","coordIndex","isGeometryCollection","type","isFeatureCollection","isFeature","stop","featureIndex","geomIndex","multiFeatureIndex","geometryIndex","geomType","geomEach","i","g","featureProperties","featureBBox","featureId","geomReduce","initialValue","previousValue","currentGeometry","flattenEach","bbox","id","coordinate","segmentEach","feature2","segmentIndex","previousCoords","previousFeatureIndex","previousMultiIndex","prevGeomIndex","currentCoord","featureIndexCoord","multiPartIndexCoord","currentSegment","segmentReduce","started","area","value","calculateArea","total","polygonArea","ringArea","FACTOR","PI_OVER_180","coordsLength","lower","middle","upper","lowerX","middleY","upperX","result","turf_bbox_default","cleanCoords","mutate","newCoords","cleanLine","line","polygons","polyPoints","ring","existing","key","points","equals","newPoints","secondToLast","newPointsLength","prevAddedPoint","isPointOnLineSegment","pt1","pt2","start","end","x","y","startX","startY","endX","endY","dxc","dyc","dxl","dyl","cross","centroid","xSum","ySum","len","clone","cloneFeature","cloneFeatureCollection","cloneGeometry","cloned","cloneProperties","item","deepSlice","length","segment","getSqDist","p1","p2","dx","dy","getSqSegDist","p","t","simplifyRadialDist","sqTolerance","prevPoint","simplifyDPStep","first","last","simplified","maxSqDist","index","sqDist","simplifyDouglasPeucker","simplify","tolerance","highestQuality","simplify2","_a","_b","_c","highQuality","simplifyGeom","lines","simplifyPolygon","rings","ringTolerance","simpleRing","checkValidity"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10]}