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
48 lines (42 loc) • 1.85 kB
JavaScript
Object.defineProperty(exports, "__esModule", {value: true});// index.ts
var _helpers = require('@turf/helpers');
var _invariant = require('@turf/invariant');
function polygonToLine(poly, options = {}) {
const geom = _invariant.getGeom.call(void 0, poly);
if (!options.properties && poly.type === "Feature") {
options.properties = poly.properties;
}
switch (geom.type) {
case "Polygon":
return singlePolygonToLine(geom, options);
case "MultiPolygon":
return multiPolygonToLine(geom, options);
default:
throw new Error("invalid poly");
}
}
function singlePolygonToLine(poly, options = {}) {
const geom = _invariant.getGeom.call(void 0, poly);
const coords = geom.coordinates;
const properties = options.properties ? options.properties : poly.type === "Feature" ? poly.properties : {};
return coordsToLine(coords, properties);
}
function multiPolygonToLine(multiPoly, options = {}) {
const geom = _invariant.getGeom.call(void 0, multiPoly);
const coords = geom.coordinates;
const properties = options.properties ? options.properties : multiPoly.type === "Feature" ? multiPoly.properties : {};
const lines = [];
coords.forEach((coord) => {
lines.push(coordsToLine(coord, properties));
});
return _helpers.featureCollection.call(void 0, lines);
}
function coordsToLine(coords, properties) {
if (coords.length > 1) {
return _helpers.multiLineString.call(void 0, coords, properties);
}
return _helpers.lineString.call(void 0, coords[0], properties);
}
var turf_polygon_to_line_default = polygonToLine;
exports.coordsToLine = coordsToLine; exports.default = turf_polygon_to_line_default; exports.multiPolygonToLine = multiPolygonToLine; exports.polygonToLine = polygonToLine; exports.singlePolygonToLine = singlePolygonToLine;
//# sourceMappingURL=index.cjs.map
;