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 • 1.29 kB
JavaScript
// index.ts
import { circle } from "@turf/circle";
import { destination } from "@turf/destination";
import { lineString } from "@turf/helpers";
function lineArc(center, radius, bearing1, bearing2, options = {}) {
const steps = options.steps || 64;
const angle1 = convertAngleTo360(bearing1);
const angle2 = convertAngleTo360(bearing2);
const properties = !Array.isArray(center) && center.type === "Feature" ? center.properties : {};
if (angle1 === angle2) {
return lineString(
circle(center, radius, options).geometry.coordinates[0],
properties
);
}
const arcStartDegree = angle1;
const arcEndDegree = angle1 < angle2 ? angle2 : angle2 + 360;
let alpha = arcStartDegree;
const coordinates = [];
let i = 0;
const arcStep = (arcEndDegree - arcStartDegree) / steps;
while (alpha <= arcEndDegree) {
coordinates.push(
destination(center, radius, alpha, options).geometry.coordinates
);
i++;
alpha = arcStartDegree + i * arcStep;
}
return lineString(coordinates, properties);
}
function convertAngleTo360(alpha) {
let beta = alpha % 360;
if (beta < 0) {
beta += 360;
}
return beta;
}
var turf_line_arc_default = lineArc;
export {
turf_line_arc_default as default,
lineArc
};
//# sourceMappingURL=index.js.map