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
38 lines • 1.49 kB
JavaScript
// index.ts
import { centroid } from "@turf/centroid";
import { rhumbBearing } from "@turf/rhumb-bearing";
import { rhumbDistance } from "@turf/rhumb-distance";
import { rhumbDestination } from "@turf/rhumb-destination";
import { clone } from "@turf/clone";
import { coordEach } from "@turf/meta";
import { getCoords } from "@turf/invariant";
import { isObject } from "@turf/helpers";
function transformRotate(geojson, angle, options) {
options = options || {};
if (!isObject(options)) throw new Error("options is invalid");
const pivot = options.pivot;
const mutate = options.mutate;
if (!geojson) throw new Error("geojson is required");
if (angle === void 0 || angle === null || isNaN(angle))
throw new Error("angle is required");
if (angle === 0) return geojson;
const pivotCoord = pivot != null ? pivot : centroid(geojson);
if (mutate === false || mutate === void 0) geojson = clone(geojson);
coordEach(geojson, function(pointCoords) {
const initialAngle = rhumbBearing(pivotCoord, pointCoords);
const finalAngle = initialAngle + angle;
const distance = rhumbDistance(pivotCoord, pointCoords);
const newCoords = getCoords(
rhumbDestination(pivotCoord, distance, finalAngle)
);
pointCoords[0] = newCoords[0];
pointCoords[1] = newCoords[1];
});
return geojson;
}
var turf_transform_rotate_default = transformRotate;
export {
turf_transform_rotate_default as default,
transformRotate
};
//# sourceMappingURL=index.js.map