forked from iNavFlight/inav-configurator
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfwApproach.js
108 lines (84 loc) · 2.72 KB
/
fwApproach.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
'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 };