You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
109 lines
2.7 KiB
JavaScript
109 lines
2.7 KiB
JavaScript
'use strict';
|
|
|
|
const ApproachDirection = Object.freeze({
|
|
LEFT: 0,
|
|
RIGHT: 1,
|
|
})
|
|
|
|
let FwApproach = function (number, approachAltAsl = 0, landAltAsl = 0, approachDirection = 0, landHeading1 = 0, landHeading2 = 0, isSeaLevelRef = 0, elevation = 0) {
|
|
|
|
var self = {};
|
|
|
|
self.getNumber = function () {
|
|
return number;
|
|
};
|
|
|
|
self.setNumber = function (data) {
|
|
number = data;
|
|
};
|
|
|
|
self.getApproachAltAsl = function () {
|
|
return approachAltAsl;
|
|
}
|
|
|
|
self.setApproachAltAsl = function (data) {
|
|
approachAltAsl = data;
|
|
}
|
|
|
|
self.getLandAltAsl = function () {
|
|
return landAltAsl;
|
|
}
|
|
|
|
self.setLandAltAsl = function (data) {
|
|
landAltAsl = data;
|
|
}
|
|
|
|
self.getApproachDirection = function () {
|
|
return approachDirection;
|
|
}
|
|
|
|
self.setApproachDirection = function (data) {
|
|
approachDirection = data;
|
|
}
|
|
|
|
self.getLandHeading1 = function () {
|
|
return landHeading1;
|
|
}
|
|
|
|
self.setLandHeading1 = function (data) {
|
|
landHeading1 = data;
|
|
}
|
|
|
|
self.getLandHeading2 = function () {
|
|
return landHeading2;
|
|
}
|
|
|
|
self.setLandHeading2 = function (data) {
|
|
landHeading2 = data;
|
|
}
|
|
|
|
self.getIsSeaLevelRef = function () {
|
|
return isSeaLevelRef;
|
|
}
|
|
|
|
self.setIsSeaLevelRef = function (data) {
|
|
isSeaLevelRef = data;
|
|
}
|
|
|
|
self.getElevation = function() {
|
|
return elevation;
|
|
}
|
|
|
|
self.setElevation = function (data) {
|
|
elevation = data;
|
|
}
|
|
|
|
self.cleanup = function () {
|
|
approachAltAsl = 0;
|
|
landAltAsl = 0;
|
|
approachDirection = 0;
|
|
landHeading1 = 0;
|
|
landHeading2 = 0;
|
|
isSeaLevelRef = 0;
|
|
elevation = 0
|
|
};
|
|
|
|
self.getElevationFromServer = async function (lon, lat, globalSettings) {
|
|
let elevation = "N/A";
|
|
if (globalSettings.mapProviderType == 'bing') {
|
|
let elevationEarthModel = $('#elevationEarthModel').prop("checked") ? "ellipsoid" : "sealevel";
|
|
|
|
const response = await fetch('http://dev.virtualearth.net/REST/v1/Elevation/List?points='+lat+','+lon+'&heights='+elevationEarthModel+'&key='+globalSettings.mapApiKey);
|
|
const myJson = await response.json();
|
|
elevation = myJson.resourceSets[0].resources[0].elevations[0];
|
|
}
|
|
else {
|
|
const response = await fetch('https://api.opentopodata.org/v1/aster30m?locations='+lat+','+lon);
|
|
const myJson = await response.json();
|
|
if (myJson.status == "OK" && myJson.results[0].elevation != null) {
|
|
elevation = myJson.results[0].elevation;
|
|
}
|
|
}
|
|
return elevation;
|
|
}
|
|
|
|
return self;
|
|
};
|
|
|
|
module.exports = { ApproachDirection, FwApproach };
|