{"version":3,"sources":["/home/runner/work/turf/turf/packages/turf-point-grid/dist/cjs/index.cjs","../../index.ts"],"names":[],"mappings":"AAAA;ACSA,qDAAwC;AACxC,0CAAyB;AACzB,wCAAgD;AAuBhD,SAAS,SAAA,CACP,IAAA,EACA,QAAA,EACA,QAAA,EAII,CAAC,CAAA,EACwB;AAE7B,EAAA,GAAA,CAAI,OAAA,CAAQ,KAAA,GAAQ,CAAC,OAAA,CAAQ,KAAA,EAAO,OAAA,CAAQ,MAAA,EAAQ,YAAA;AAGpD,EAAA,IAAI,QAAA,EAAU,CAAC,CAAA;AAUf,EAAA,IAAI,KAAA,EAAO,IAAA,CAAK,CAAC,CAAA;AACjB,EAAA,IAAI,MAAA,EAAQ,IAAA,CAAK,CAAC,CAAA;AAClB,EAAA,IAAI,KAAA,EAAO,IAAA,CAAK,CAAC,CAAA;AACjB,EAAA,IAAI,MAAA,EAAQ,IAAA,CAAK,CAAC,CAAA;AAElB,EAAA,IAAI,UAAA,EAAY,SAAA,EAAW,gCAAA,CAAU,IAAA,EAAM,KAAK,CAAA,EAAG,CAAC,IAAA,EAAM,KAAK,CAAA,EAAG,OAAO,CAAA;AACzE,EAAA,IAAI,UAAA,EAAY,UAAA,EAAA,CAAa,KAAA,EAAO,IAAA,CAAA;AACpC,EAAA,IAAI,UAAA,EAAY,SAAA,EAAW,gCAAA,CAAU,IAAA,EAAM,KAAK,CAAA,EAAG,CAAC,IAAA,EAAM,KAAK,CAAA,EAAG,OAAO,CAAA;AACzE,EAAA,IAAI,WAAA,EAAa,UAAA,EAAA,CAAa,MAAA,EAAQ,KAAA,CAAA;AAEtC,EAAA,IAAI,UAAA,EAAY,KAAA,EAAO,IAAA;AACvB,EAAA,IAAI,WAAA,EAAa,MAAA,EAAQ,KAAA;AACzB,EAAA,IAAI,QAAA,EAAU,IAAA,CAAK,KAAA,CAAM,UAAA,EAAY,SAAS,CAAA;AAC9C,EAAA,IAAI,KAAA,EAAO,IAAA,CAAK,KAAA,CAAM,WAAA,EAAa,UAAU,CAAA;AAG7C,EAAA,IAAI,OAAA,EAAA,CAAU,UAAA,EAAY,QAAA,EAAU,SAAA,EAAA,EAAa,CAAA;AACjD,EAAA,IAAI,OAAA,EAAA,CAAU,WAAA,EAAa,KAAA,EAAO,UAAA,EAAA,EAAc,CAAA;AAEhD,EAAA,IAAI,SAAA,EAAW,KAAA,EAAO,MAAA;AACtB,EAAA,MAAA,CAAO,SAAA,GAAY,IAAA,EAAM;AACvB,IAAA,IAAI,SAAA,EAAW,MAAA,EAAQ,MAAA;AACvB,IAAA,MAAA,CAAO,SAAA,GAAY,KAAA,EAAO;AACxB,MAAA,IAAI,OAAA,EAAS,4BAAA,CAAO,QAAA,EAAU,QAAQ,CAAA,EAAG,OAAA,CAAQ,UAAU,CAAA;AAC3D,MAAA,GAAA,CAAI,OAAA,CAAQ,IAAA,EAAM;AAChB,QAAA,GAAA,CAAI,0CAAA,MAAO,EAAQ,OAAA,CAAQ,IAAI,CAAA,EAAG,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAA;AAAA,MACvD,EAAA,KAAO;AACL,QAAA,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAA;AAAA,MACrB;AACA,MAAA,SAAA,GAAY,UAAA;AAAA,IACd;AACA,IAAA,SAAA,GAAY,SAAA;AAAA,EACd;AAEA,EAAA,OAAO,wCAAA,OAAyB,CAAA;AAClC;AAGA,IAAO,wBAAA,EAAQ,SAAA;ADzDf;AACE;AACA;AACF,yEAAC","file":"/home/runner/work/turf/turf/packages/turf-point-grid/dist/cjs/index.cjs","sourcesContent":[null,"import {\n BBox,\n Feature,\n Polygon,\n MultiPolygon,\n FeatureCollection,\n Point,\n GeoJsonProperties,\n} from \"geojson\";\nimport { booleanWithin as within } from \"@turf/boolean-within\";\nimport { distance } from \"@turf/distance\";\nimport { point, featureCollection, Units } from \"@turf/helpers\";\n\n/**\n * Creates a grid of points\n *\n * @function\n * @param {BBox} bbox extent of grid in [minX, minY, maxX, maxY] order\n * @param {number} cellSide the distance between points\n * @param {Object} [options={}] Optional parameters\n * @param {Units} [options.units='kilometers'] the units of the cellSide value. Supports all valid Turf {@link https://github.com/Turfjs/turf/blob/master/packages/turf-helpers/README_UNITS.md Units}\n * @param {Feature} [options.mask] if passed a Polygon or MultiPolygon, the grid Points will be created only inside it\n * @param {Object} [options.properties={}] passed to each point of the grid\n * @returns {FeatureCollection} grid of points\n * @example\n * var extent = [-70.823364, -33.553984, -70.473175, -33.302986];\n * var cellSide = 3;\n * var options = {units: 'miles'};\n *\n * var grid = turf.pointGrid(extent, cellSide, options);\n *\n * //addToMap\n * var addToMap = [grid];\n */\nfunction pointGrid

(\n bbox: BBox,\n cellSide: number,\n options: {\n units?: Units;\n mask?: Feature;\n properties?: P;\n } = {}\n): FeatureCollection {\n // Default parameters\n if (options.mask && !options.units) options.units = \"kilometers\";\n\n // Containers\n var results = [];\n\n // Typescript handles the Type Validation\n // if (cellSide === null || cellSide === undefined) throw new Error('cellSide is required');\n // if (!isNumber(cellSide)) throw new Error('cellSide is invalid');\n // if (!bbox) throw new Error('bbox is required');\n // if (!Array.isArray(bbox)) throw new Error('bbox must be array');\n // if (bbox.length !== 4) throw new Error('bbox must contain 4 numbers');\n // if (mask && ['Polygon', 'MultiPolygon'].indexOf(getType(mask)) === -1) throw new Error('options.mask must be a (Multi)Polygon');\n\n var west = bbox[0];\n var south = bbox[1];\n var east = bbox[2];\n var north = bbox[3];\n\n var xFraction = cellSide / distance([west, south], [east, south], options);\n var cellWidth = xFraction * (east - west);\n var yFraction = cellSide / distance([west, south], [west, north], options);\n var cellHeight = yFraction * (north - south);\n\n var bboxWidth = east - west;\n var bboxHeight = north - south;\n var columns = Math.floor(bboxWidth / cellWidth);\n var rows = Math.floor(bboxHeight / cellHeight);\n\n // adjust origin of the grid\n var deltaX = (bboxWidth - columns * cellWidth) / 2;\n var deltaY = (bboxHeight - rows * cellHeight) / 2;\n\n var currentX = west + deltaX;\n while (currentX <= east) {\n var currentY = south + deltaY;\n while (currentY <= north) {\n var cellPt = point([currentX, currentY], options.properties);\n if (options.mask) {\n if (within(cellPt, options.mask)) results.push(cellPt);\n } else {\n results.push(cellPt);\n }\n currentY += cellHeight;\n }\n currentX += cellWidth;\n }\n\n return featureCollection(results);\n}\n\nexport { pointGrid };\nexport default pointGrid;\n"]}