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.91 kB
JavaScript
Object.defineProperty(exports, "__esModule", {value: true});// index.ts
var _meta = require('@turf/meta');
var _helpers = require('@turf/helpers');
var _invariant = require('@turf/invariant');
var _clone = require('@turf/clone');
var _rhumbdestination = require('@turf/rhumb-destination');
function transformTranslate(geojson, distance, direction, options) {
options = options || {};
if (!_helpers.isObject.call(void 0, options)) throw new Error("options is invalid");
var units = options.units;
var zTranslation = options.zTranslation;
var mutate = options.mutate;
if (!geojson) throw new Error("geojson is required");
if (distance === void 0 || distance === null || isNaN(distance))
throw new Error("distance is required");
if (zTranslation && typeof zTranslation !== "number" && isNaN(zTranslation))
throw new Error("zTranslation is not a number");
zTranslation = zTranslation !== void 0 ? zTranslation : 0;
if (distance === 0 && zTranslation === 0) return geojson;
if (direction === void 0 || direction === null || isNaN(direction))
throw new Error("direction is required");
if (distance < 0) {
distance = -distance;
direction = direction + 180;
}
if (mutate === false || mutate === void 0) geojson = _clone.clone.call(void 0, geojson);
_meta.coordEach.call(void 0, geojson, function(pointCoords) {
var newCoords = _invariant.getCoords.call(void 0,
_rhumbdestination.rhumbDestination.call(void 0, pointCoords, distance, direction, { units })
);
pointCoords[0] = newCoords[0];
pointCoords[1] = newCoords[1];
if (zTranslation && pointCoords.length === 3)
pointCoords[2] += zTranslation;
});
return geojson;
}
var turf_transform_translate_default = transformTranslate;
exports.default = turf_transform_translate_default; exports.transformTranslate = transformTranslate;
//# sourceMappingURL=index.cjs.map
;