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
134 lines (131 loc) • 4.43 kB
JavaScript
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// index.ts
var _distance = require('@turf/distance');
var _intersect = require('@turf/intersect');
var _helpers = require('@turf/helpers');
function triangleGrid(bbox, cellSide, options = {}) {
var results = [];
var xFraction = cellSide / _distance.distance.call(void 0, [bbox[0], bbox[1]], [bbox[2], bbox[1]], options);
var cellWidth = xFraction * (bbox[2] - bbox[0]);
var yFraction = cellSide / _distance.distance.call(void 0, [bbox[0], bbox[1]], [bbox[0], bbox[3]], options);
var cellHeight = yFraction * (bbox[3] - bbox[1]);
var xi = 0;
var currentX = bbox[0];
while (currentX <= bbox[2]) {
var yi = 0;
var currentY = bbox[1];
while (currentY <= bbox[3]) {
var cellTriangle1 = null;
var cellTriangle2 = null;
if (xi % 2 === 0 && yi % 2 === 0) {
cellTriangle1 = _helpers.polygon.call(void 0,
[
[
[ ],
[ ],
[ ],
[ ]
]
],
options.properties
);
cellTriangle2 = _helpers.polygon.call(void 0,
[
[
[ ],
[ ],
[ ],
[ ]
]
],
options.properties
);
} else if (xi % 2 === 0 && yi % 2 === 1) {
cellTriangle1 = _helpers.polygon.call(void 0,
[
[
[ ],
[ ],
[ ],
[ ]
]
],
options.properties
);
cellTriangle2 = _helpers.polygon.call(void 0,
[
[
[ ],
[ ],
[ ],
[ ]
]
],
options.properties
);
} else if (yi % 2 === 0 && xi % 2 === 1) {
cellTriangle1 = _helpers.polygon.call(void 0,
[
[
[ ],
[ ],
[ ],
[ ]
]
],
options.properties
);
cellTriangle2 = _helpers.polygon.call(void 0,
[
[
[ ],
[ ],
[ ],
[ ]
]
],
options.properties
);
} else if (yi % 2 === 1 && xi % 2 === 1) {
cellTriangle1 = _helpers.polygon.call(void 0,
[
[
[ ],
[ ],
[ ],
[ ]
]
],
options.properties
);
cellTriangle2 = _helpers.polygon.call(void 0,
[
[
[ ],
[ ],
[ ],
[ ]
]
],
options.properties
);
}
if (options.mask) {
if (_intersect.intersect.call(void 0, _helpers.featureCollection.call(void 0, [options.mask, cellTriangle1])))
results.push(cellTriangle1);
if (_intersect.intersect.call(void 0, _helpers.featureCollection.call(void 0, [options.mask, cellTriangle2])))
results.push(cellTriangle2);
} else {
results.push(cellTriangle1);
results.push(cellTriangle2);
}
currentY += cellHeight;
yi++;
}
xi++;
currentX += cellWidth;
}
return _helpers.featureCollection.call(void 0, results);
}
var turf_triangle_grid_default = triangleGrid;
exports.default = turf_triangle_grid_default; exports.triangleGrid = triangleGrid;
//# sourceMappingURL=index.cjs.map