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
81 lines (61 loc) • 1.91 kB
JavaScript
import * as interpolate from './interpolation';
function Options() {
/* Settings common to all implemented algorithms */
this.successCallback = null;
this.verbose = false;
this.polygons = false;
this.polygons_full = false;
this.linearRing = true;
this.noQuadTree = false;
this.noFrame = false;
}
/* Compose settings specific to IsoBands algorithm */
function isoBandOptions(userSettings) {
var i,
key,
val,
bandOptions,
optionKeys;
bandOptions = new Options();
userSettings = userSettings ? userSettings : {};
optionKeys = Object.keys(bandOptions);
for(i = 0; i < optionKeys.length; i++) {
key = optionKeys[i];
val = userSettings[key];
if ((typeof val !== 'undefined') && (val !== null))
bandOptions[key] = val;
}
/* restore compatibility */
bandOptions.polygons_full = !bandOptions.polygons;
/* add interpolation functions (not yet user customizable) */
bandOptions.interpolate = interpolate.linear_ab;
bandOptions.interpolate_a = interpolate.linear_a;
bandOptions.interpolate_b = interpolate.linear_b;
return bandOptions;
}
/* Compose settings specific to IsoLines algorithm */
function isoLineOptions(userSettings) {
var i,
key,
val,
lineOptions,
optionKeys;
lineOptions = new Options();
userSettings = userSettings ? userSettings : {};
optionKeys = Object.keys(lineOptions);
for(i = 0; i < optionKeys.length; i++) {
key = optionKeys[i];
val = userSettings[key];
if ((typeof val !== 'undefined') && (val !== null))
lineOptions[key] = val;
}
/* restore compatibility */
lineOptions.polygons_full = !lineOptions.polygons;
/* add interpolation functions (not yet user customizable) */
lineOptions.interpolate = interpolate.linear;
return lineOptions;
}
export {
isoBandOptions,
isoLineOptions
};