| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});// index.ts
- var _booleanintersects = require('@turf/boolean-intersects');
- var _helpers = require('@turf/helpers');
- function rectangleGrid(bbox, cellWidth, cellHeight, options = {}) {
- const results = [];
- const west = bbox[0];
- const south = bbox[1];
- const east = bbox[2];
- const north = bbox[3];
- const bboxWidth = east - west;
- const cellWidthDeg = _helpers.convertLength.call(void 0, cellWidth, options.units, "degrees");
- const bboxHeight = north - south;
- const cellHeightDeg = _helpers.convertLength.call(void 0, cellHeight, options.units, "degrees");
- const columns = Math.floor(Math.abs(bboxWidth) / cellWidthDeg);
- const rows = Math.floor(Math.abs(bboxHeight) / cellHeightDeg);
- const deltaX = (bboxWidth - columns * cellWidthDeg) / 2;
- const deltaY = (bboxHeight - rows * cellHeightDeg) / 2;
- let currentX = west + deltaX;
- for (let column = 0; column < columns; column++) {
- let currentY = south + deltaY;
- for (let row = 0; row < rows; row++) {
- const cellPoly = _helpers.polygon.call(void 0,
- [
- [
- [currentX, currentY],
- [currentX, currentY + cellHeightDeg],
- [currentX + cellWidthDeg, currentY + cellHeightDeg],
- [currentX + cellWidthDeg, currentY],
- [currentX, currentY]
- ]
- ],
- options.properties
- );
- if (options.mask) {
- if (_booleanintersects.booleanIntersects.call(void 0, options.mask, cellPoly)) {
- results.push(cellPoly);
- }
- } else {
- results.push(cellPoly);
- }
- currentY += cellHeightDeg;
- }
- currentX += cellWidthDeg;
- }
- return _helpers.featureCollection.call(void 0, results);
- }
- var turf_rectangle_grid_default = rectangleGrid;
- exports.default = turf_rectangle_grid_default; exports.rectangleGrid = rectangleGrid;
- //# sourceMappingURL=index.cjs.map
|