node-red-contrib-tak-registration
Version:
A Node-RED node to register to TAK and to help wrap files as datapackages to send to TAK
43 lines (40 loc) • 1.7 kB
JavaScript
Object.defineProperty(exports, "__esModule", {value: true});// index.ts
var _booleanwithin = require('@turf/boolean-within');
var _distance = require('@turf/distance');
var _helpers = require('@turf/helpers');
function pointGrid(bbox, cellSide, options = {}) {
if (options.mask && !options.units) options.units = "kilometers";
var results = [];
var west = bbox[0];
var south = bbox[1];
var east = bbox[2];
var north = bbox[3];
var xFraction = cellSide / _distance.distance.call(void 0, [west, south], [east, south], options);
var cellWidth = xFraction * (east - west);
var yFraction = cellSide / _distance.distance.call(void 0, [west, south], [west, north], options);
var cellHeight = yFraction * (north - south);
var bboxWidth = east - west;
var bboxHeight = north - south;
var columns = Math.floor(bboxWidth / cellWidth);
var rows = Math.floor(bboxHeight / cellHeight);
var deltaX = (bboxWidth - columns * cellWidth) / 2;
var deltaY = (bboxHeight - rows * cellHeight) / 2;
var currentX = west + deltaX;
while (currentX <= east) {
var currentY = south + deltaY;
while (currentY <= north) {
var cellPt = _helpers.point.call(void 0, [currentX, currentY], options.properties);
if (options.mask) {
if (_booleanwithin.booleanWithin.call(void 0, cellPt, options.mask)) results.push(cellPt);
} else {
results.push(cellPt);
}
currentY += cellHeight;
}
currentX += cellWidth;
}
return _helpers.featureCollection.call(void 0, results);
}
var turf_point_grid_default = pointGrid;
exports.default = turf_point_grid_default; exports.pointGrid = pointGrid;
//# sourceMappingURL=index.cjs.map
;