mirror of
https://github.com/iNavFlight/inav-configurator.git
synced 2025-07-24 00:35:20 +03:00
Initial build
This commit is contained in:
parent
924c974473
commit
397e840e5a
2 changed files with 100 additions and 70 deletions
|
@ -15,7 +15,7 @@ let Waypoint = function (number, action, lat, lon, alt=0, p1=0, p2=0, p3=0, endM
|
||||||
self.setNumber = function (data) {
|
self.setNumber = function (data) {
|
||||||
number = data;
|
number = data;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.getLayerNumber = function () {
|
self.getLayerNumber = function () {
|
||||||
return layerNumber;
|
return layerNumber;
|
||||||
};
|
};
|
||||||
|
@ -23,7 +23,7 @@ let Waypoint = function (number, action, lat, lon, alt=0, p1=0, p2=0, p3=0, endM
|
||||||
self.setLayerNumber = function (data) {
|
self.setLayerNumber = function (data) {
|
||||||
layerNumber = data;
|
layerNumber = data;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.getPoiNumber = function () {
|
self.getPoiNumber = function () {
|
||||||
return poiNumber;
|
return poiNumber;
|
||||||
};
|
};
|
||||||
|
@ -31,7 +31,7 @@ let Waypoint = function (number, action, lat, lon, alt=0, p1=0, p2=0, p3=0, endM
|
||||||
self.setPoiNumber = function (data) {
|
self.setPoiNumber = function (data) {
|
||||||
poiNumber = data;
|
poiNumber = data;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.isUsed = function () {
|
self.isUsed = function () {
|
||||||
return isUsed;
|
return isUsed;
|
||||||
};
|
};
|
||||||
|
@ -39,7 +39,7 @@ let Waypoint = function (number, action, lat, lon, alt=0, p1=0, p2=0, p3=0, endM
|
||||||
self.setUsed = function (data) {
|
self.setUsed = function (data) {
|
||||||
isUsed = data;
|
isUsed = data;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.isAttached = function () {
|
self.isAttached = function () {
|
||||||
return isAttached;
|
return isAttached;
|
||||||
};
|
};
|
||||||
|
@ -51,7 +51,7 @@ let Waypoint = function (number, action, lat, lon, alt=0, p1=0, p2=0, p3=0, endM
|
||||||
self.getLon = function () {
|
self.getLon = function () {
|
||||||
return lon;
|
return lon;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.getLonMap = function () {
|
self.getLonMap = function () {
|
||||||
return lon / 10000000;
|
return lon / 10000000;
|
||||||
};
|
};
|
||||||
|
@ -63,7 +63,7 @@ let Waypoint = function (number, action, lat, lon, alt=0, p1=0, p2=0, p3=0, endM
|
||||||
self.getLat = function () {
|
self.getLat = function () {
|
||||||
return lat;
|
return lat;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.getLatMap = function () {
|
self.getLatMap = function () {
|
||||||
return lat / 10000000;
|
return lat / 10000000;
|
||||||
};
|
};
|
||||||
|
@ -71,55 +71,55 @@ let Waypoint = function (number, action, lat, lon, alt=0, p1=0, p2=0, p3=0, endM
|
||||||
self.setLat = function (data) {
|
self.setLat = function (data) {
|
||||||
lat = data;
|
lat = data;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.getAction = function () {
|
self.getAction = function () {
|
||||||
return action;
|
return action;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.setAction = function (data) {
|
self.setAction = function (data) {
|
||||||
action = data;
|
action = data;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.getAlt = function () {
|
self.getAlt = function () {
|
||||||
return alt;
|
return alt;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.setAlt = function (data) {
|
self.setAlt = function (data) {
|
||||||
alt = data;
|
alt = data;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.getP1 = function () {
|
self.getP1 = function () {
|
||||||
return p1;
|
return p1;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.setP1 = function (data) {
|
self.setP1 = function (data) {
|
||||||
p1 = data;
|
p1 = data;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.getP2 = function () {
|
self.getP2 = function () {
|
||||||
return p2;
|
return p2;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.setP2 = function (data) {
|
self.setP2 = function (data) {
|
||||||
p2 = data;
|
p2 = data;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.getP3 = function () {
|
self.getP3 = function () {
|
||||||
return p3;
|
return p3;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.setP3 = function (data) {
|
self.setP3 = function (data) {
|
||||||
p3 = data;
|
p3 = data;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.getEndMission = function () {
|
self.getEndMission = function () {
|
||||||
return endMission;
|
return endMission;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.setEndMission = function (data) {
|
self.setEndMission = function (data) {
|
||||||
endMission = data;
|
endMission = data;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.getAttachedId = function () {
|
self.getAttachedId = function () {
|
||||||
return attachedId;
|
return attachedId;
|
||||||
};
|
};
|
||||||
|
@ -127,7 +127,7 @@ let Waypoint = function (number, action, lat, lon, alt=0, p1=0, p2=0, p3=0, endM
|
||||||
self.setAttachedId = function (data) {
|
self.setAttachedId = function (data) {
|
||||||
attachedId = data;
|
attachedId = data;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.getAttachedNumber = function () {
|
self.getAttachedNumber = function () {
|
||||||
return attachedNumber;
|
return attachedNumber;
|
||||||
};
|
};
|
||||||
|
@ -135,16 +135,21 @@ let Waypoint = function (number, action, lat, lon, alt=0, p1=0, p2=0, p3=0, endM
|
||||||
self.setAttachedNumber = function (data) {
|
self.setAttachedNumber = function (data) {
|
||||||
attachedNumber = data;
|
attachedNumber = data;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.getElevation = async function (globalSettings) {
|
self.getElevation = async function (globalSettings) {
|
||||||
let elevation;
|
let elevation;
|
||||||
if (globalSettings.mapProviderType == 'bing') {
|
if (globalSettings.mapProviderType == 'bing') {
|
||||||
const response = await fetch('http://dev.virtualearth.net/REST/v1/Elevation/List?points='+self.getLatMap()+','+self.getLonMap()+'&heights=ellipsoid&key='+globalSettings.mapApiKey);
|
const response = await fetch('http://dev.virtualearth.net/REST/v1/Elevation/List?points='+self.getLatMap()+','+self.getLonMap()+'&heights=ellipsoid&key='+globalSettings.mapApiKey);
|
||||||
const myJson = await response.json();
|
const myJson = await response.json();
|
||||||
elevation = myJson.resourceSets[0].resources[0].elevations[0];
|
elevation = myJson.resourceSets[0].resources[0].elevations[0];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
elevation = "NA";
|
const response = await fetch('https://api.opentopodata.org/v1/aster30m?locations='+self.getLatMap()+','+self.getLonMap());
|
||||||
|
const myJson = await response.json();
|
||||||
|
elevation = myJson.results[0].elevation;
|
||||||
|
if (elevation == null) {
|
||||||
|
elevation = "N/A";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return elevation;
|
return elevation;
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ let WaypointCollection = function () {
|
||||||
countBusyPoints = 0,
|
countBusyPoints = 0,
|
||||||
version = 0,
|
version = 0,
|
||||||
center = {}
|
center = {}
|
||||||
|
|
||||||
self.getMaxWaypoints = function () {
|
self.getMaxWaypoints = function () {
|
||||||
return maxWaypoints;
|
return maxWaypoints;
|
||||||
};
|
};
|
||||||
|
@ -18,15 +18,15 @@ let WaypointCollection = function () {
|
||||||
self.setMaxWaypoints = function (data) {
|
self.setMaxWaypoints = function (data) {
|
||||||
maxWaypoints = data;
|
maxWaypoints = data;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.getValidMission = function () {
|
self.getValidMission = function () {
|
||||||
return isValidMission;
|
return isValidMission;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.setValidMission = function (data) {
|
self.setValidMission = function (data) {
|
||||||
isValidMission = data;
|
isValidMission = data;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.getCountBusyPoints = function () {
|
self.getCountBusyPoints = function () {
|
||||||
return countBusyPoints;
|
return countBusyPoints;
|
||||||
};
|
};
|
||||||
|
@ -34,7 +34,7 @@ let WaypointCollection = function () {
|
||||||
self.setCountBusyPoints = function (data) {
|
self.setCountBusyPoints = function (data) {
|
||||||
countBusyPoints = data;
|
countBusyPoints = data;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.getVersion = function () {
|
self.getVersion = function () {
|
||||||
return version;
|
return version;
|
||||||
};
|
};
|
||||||
|
@ -42,11 +42,11 @@ let WaypointCollection = function () {
|
||||||
self.setVersion = function (data) {
|
self.setVersion = function (data) {
|
||||||
version = data;
|
version = data;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.getCenter = function () {
|
self.getCenter = function () {
|
||||||
return center;
|
return center;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.setCenter = function (data) {
|
self.setCenter = function (data) {
|
||||||
center = data;
|
center = data;
|
||||||
};
|
};
|
||||||
|
@ -54,11 +54,11 @@ let WaypointCollection = function () {
|
||||||
self.setCenterZoom = function (data) {
|
self.setCenterZoom = function (data) {
|
||||||
center.zoom = data;
|
center.zoom = data;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.setCenterLon = function (data) {
|
self.setCenterLon = function (data) {
|
||||||
center.lon = data;
|
center.lon = data;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.setCenterLat = function (data) {
|
self.setCenterLat = function (data) {
|
||||||
center.lat = data;
|
center.lat = data;
|
||||||
};
|
};
|
||||||
|
@ -70,7 +70,7 @@ let WaypointCollection = function () {
|
||||||
self.get = function () {
|
self.get = function () {
|
||||||
return data;
|
return data;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.isEmpty = function () {
|
self.isEmpty = function () {
|
||||||
return data == [];
|
return data == [];
|
||||||
};
|
};
|
||||||
|
@ -78,7 +78,7 @@ let WaypointCollection = function () {
|
||||||
self.flush = function () {
|
self.flush = function () {
|
||||||
data = [];
|
data = [];
|
||||||
};
|
};
|
||||||
|
|
||||||
self.reinit = function () {
|
self.reinit = function () {
|
||||||
data = [];
|
data = [];
|
||||||
maxWaypoints = 60;
|
maxWaypoints = 60;
|
||||||
|
@ -99,13 +99,13 @@ let WaypointCollection = function () {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
self.updateWaypoint = function(newWaypoint) {
|
self.updateWaypoint = function(newWaypoint) {
|
||||||
if (newWaypoint.isUsed()) {
|
if (newWaypoint.isUsed()) {
|
||||||
data[newWaypoint.getNumber()] = newWaypoint;
|
data[newWaypoint.getNumber()] = newWaypoint;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
self.dropWaypoint = function(newWaypoint) {
|
self.dropWaypoint = function(newWaypoint) {
|
||||||
self.getWaypoint(newWaypoint.getNumber()).setUsed(false);
|
self.getWaypoint(newWaypoint.getNumber()).setUsed(false);
|
||||||
let indexId = newWaypoint.getNumber()
|
let indexId = newWaypoint.getNumber()
|
||||||
|
@ -120,7 +120,7 @@ let WaypointCollection = function () {
|
||||||
data.splice(indexId, 1);
|
data.splice(indexId, 1);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
self.insertWaypoint = function (newWaypoint, indexId) {
|
self.insertWaypoint = function (newWaypoint, indexId) {
|
||||||
data.forEach(function (wp) {
|
data.forEach(function (wp) {
|
||||||
if (wp.getNumber() >= indexId) {
|
if (wp.getNumber() >= indexId) {
|
||||||
|
@ -133,7 +133,7 @@ let WaypointCollection = function () {
|
||||||
data.splice(indexId, 0, newWaypoint);
|
data.splice(indexId, 0, newWaypoint);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
self.drop = function (waypointId) {
|
self.drop = function (waypointId) {
|
||||||
self.getWaypoint(waypointId).setUsed(false);
|
self.getWaypoint(waypointId).setUsed(false);
|
||||||
var tmpData = [];
|
var tmpData = [];
|
||||||
|
@ -148,7 +148,7 @@ let WaypointCollection = function () {
|
||||||
|
|
||||||
data = tmpData;
|
data = tmpData;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.update = function (bMWPfile=false, bReverse=false) {
|
self.update = function (bMWPfile=false, bReverse=false) {
|
||||||
let oldWPNumber = 0;
|
let oldWPNumber = 0;
|
||||||
let optionIdx = 0;
|
let optionIdx = 0;
|
||||||
|
@ -167,7 +167,7 @@ let WaypointCollection = function () {
|
||||||
element.setP1(element.getP1()+1);
|
element.setP1(element.getP1()+1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ([MWNP.WPTYPE.JUMP,MWNP.WPTYPE.SET_HEAD,MWNP.WPTYPE.RTH].includes(element.getAction())) {
|
if ([MWNP.WPTYPE.JUMP,MWNP.WPTYPE.SET_HEAD,MWNP.WPTYPE.RTH].includes(element.getAction())) {
|
||||||
element.setAttachedId(oldWPNumber);
|
element.setAttachedId(oldWPNumber);
|
||||||
element.setAttachedNumber(optionIdx);
|
element.setAttachedNumber(optionIdx);
|
||||||
|
@ -189,7 +189,7 @@ let WaypointCollection = function () {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
self.getNonAttachedList = function () {
|
self.getNonAttachedList = function () {
|
||||||
let tmpData = [];
|
let tmpData = [];
|
||||||
data.forEach(function (element) {
|
data.forEach(function (element) {
|
||||||
|
@ -199,8 +199,8 @@ let WaypointCollection = function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
return tmpData;
|
return tmpData;
|
||||||
}
|
}
|
||||||
|
|
||||||
self.getAttachedList = function () {
|
self.getAttachedList = function () {
|
||||||
let tmpData = [];
|
let tmpData = [];
|
||||||
data.forEach(function (element) {
|
data.forEach(function (element) {
|
||||||
|
@ -210,8 +210,8 @@ let WaypointCollection = function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
return tmpData;
|
return tmpData;
|
||||||
}
|
}
|
||||||
|
|
||||||
self.getAttachedFromWaypoint = function (waypoint) {
|
self.getAttachedFromWaypoint = function (waypoint) {
|
||||||
let tmpData = [];
|
let tmpData = [];
|
||||||
data.forEach(function (element) {
|
data.forEach(function (element) {
|
||||||
|
@ -221,8 +221,8 @@ let WaypointCollection = function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
return tmpData;
|
return tmpData;
|
||||||
}
|
}
|
||||||
|
|
||||||
self.addAttachedFromWaypoint = function (waypoint) {
|
self.addAttachedFromWaypoint = function (waypoint) {
|
||||||
let tmpNumber = 0;
|
let tmpNumber = 0;
|
||||||
let tmpData = self.getAttachedFromWaypoint(waypoint);
|
let tmpData = self.getAttachedFromWaypoint(waypoint);
|
||||||
|
@ -234,8 +234,8 @@ let WaypointCollection = function () {
|
||||||
tempWp.setAttachedId(waypoint.getNumber());
|
tempWp.setAttachedId(waypoint.getNumber());
|
||||||
self.insertWaypoint(tempWp, waypoint.getNumber()+tmpNumber+1);
|
self.insertWaypoint(tempWp, waypoint.getNumber()+tmpNumber+1);
|
||||||
self.update();
|
self.update();
|
||||||
}
|
}
|
||||||
|
|
||||||
self.dropAttachedFromWaypoint = function (waypoint, waypointAttachedNumber) {
|
self.dropAttachedFromWaypoint = function (waypoint, waypointAttachedNumber) {
|
||||||
data.forEach(function (element) {
|
data.forEach(function (element) {
|
||||||
if (element.isAttached() && element.getAttachedId() == waypoint.getNumber() && element.getAttachedNumber() == waypointAttachedNumber) {
|
if (element.isAttached() && element.getAttachedId() == waypoint.getNumber() && element.getAttachedNumber() == waypointAttachedNumber) {
|
||||||
|
@ -243,9 +243,9 @@ let WaypointCollection = function () {
|
||||||
self.update();
|
self.update();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
self.extractBuffer = function(waypointId) {
|
self.extractBuffer = function(waypointId) {
|
||||||
let buffer = [];
|
let buffer = [];
|
||||||
let waypoint = self.getWaypoint(waypointId);
|
let waypoint = self.getWaypoint(waypointId);
|
||||||
|
@ -270,10 +270,10 @@ let WaypointCollection = function () {
|
||||||
buffer.push(lowByte(waypoint.getP3())); //sbufReadU16(src); // P3
|
buffer.push(lowByte(waypoint.getP3())); //sbufReadU16(src); // P3
|
||||||
buffer.push(highByte(waypoint.getP3()));
|
buffer.push(highByte(waypoint.getP3()));
|
||||||
buffer.push(waypoint.getEndMission()); //sbufReadU8(src); // future: to set nav flag
|
buffer.push(waypoint.getEndMission()); //sbufReadU8(src); // future: to set nav flag
|
||||||
|
|
||||||
return buffer;
|
return buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
self.missionDisplayDebug = function() {
|
self.missionDisplayDebug = function() {
|
||||||
if (data && data.length != 0) {
|
if (data && data.length != 0) {
|
||||||
data.forEach(function (element) {
|
data.forEach(function (element) {
|
||||||
|
@ -289,7 +289,7 @@ let WaypointCollection = function () {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
self.copy = function(mission){
|
self.copy = function(mission){
|
||||||
mission.get().forEach(function (element) {
|
mission.get().forEach(function (element) {
|
||||||
self.put(element);
|
self.put(element);
|
||||||
|
@ -300,7 +300,7 @@ let WaypointCollection = function () {
|
||||||
self.setVersion(mission.getVersion());
|
self.setVersion(mission.getVersion());
|
||||||
self.setCenter(mission.getCenter());
|
self.setCenter(mission.getCenter());
|
||||||
}
|
}
|
||||||
|
|
||||||
self.convertJumpNumberToWaypoint = function(jumpId) {
|
self.convertJumpNumberToWaypoint = function(jumpId) {
|
||||||
let outputNumber = 0;
|
let outputNumber = 0;
|
||||||
self.getNonAttachedList().forEach(function (element) {
|
self.getNonAttachedList().forEach(function (element) {
|
||||||
|
@ -310,7 +310,7 @@ let WaypointCollection = function () {
|
||||||
});
|
});
|
||||||
return outputNumber;
|
return outputNumber;
|
||||||
}
|
}
|
||||||
|
|
||||||
self.isJumpTargetAttached = function(waypoint) {
|
self.isJumpTargetAttached = function(waypoint) {
|
||||||
let lJumptTargetAttached = [];
|
let lJumptTargetAttached = [];
|
||||||
data.forEach(function (element) {
|
data.forEach(function (element) {
|
||||||
|
@ -320,7 +320,7 @@ let WaypointCollection = function () {
|
||||||
});
|
});
|
||||||
return (lJumptTargetAttached.length != 0 && lJumptTargetAttached != 'undefined')
|
return (lJumptTargetAttached.length != 0 && lJumptTargetAttached != 'undefined')
|
||||||
}
|
}
|
||||||
|
|
||||||
self.getPoiList = function() {
|
self.getPoiList = function() {
|
||||||
let poiList = [];
|
let poiList = [];
|
||||||
data.forEach(function (element) {
|
data.forEach(function (element) {
|
||||||
|
@ -330,7 +330,7 @@ let WaypointCollection = function () {
|
||||||
});
|
});
|
||||||
return poiList;
|
return poiList;
|
||||||
}
|
}
|
||||||
|
|
||||||
self.getPoint2Measure = function(reverse=false) {
|
self.getPoint2Measure = function(reverse=false) {
|
||||||
let point2measure = [];
|
let point2measure = [];
|
||||||
let altPoint2measure = [];
|
let altPoint2measure = [];
|
||||||
|
@ -383,10 +383,10 @@ let WaypointCollection = function () {
|
||||||
nStart++;
|
nStart++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return [nLoop, point2measure, altPoint2measure, namePoint2measure, refPoint2measure];
|
return [nLoop, point2measure, altPoint2measure, namePoint2measure, refPoint2measure];
|
||||||
}
|
}
|
||||||
|
|
||||||
self.getDistance = function(display) {
|
self.getDistance = function(display) {
|
||||||
let lengthLine = [];
|
let lengthLine = [];
|
||||||
const [nLoop, point2measure, altPoint2measure, namePoint2measure, refPoint2measure] = self.getPoint2Measure();
|
const [nLoop, point2measure, altPoint2measure, namePoint2measure, refPoint2measure] = self.getPoint2Measure();
|
||||||
|
@ -394,9 +394,9 @@ let WaypointCollection = function () {
|
||||||
return [-1];
|
return [-1];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
const cumulativeSum = (sum => value => sum += value)(0);
|
const cumulativeSum = (sum => value => sum += value)(0);
|
||||||
|
|
||||||
let oldCoord = [];
|
let oldCoord = [];
|
||||||
point2measure.forEach(function (coord) {
|
point2measure.forEach(function (coord) {
|
||||||
if (oldCoord != 'undefined' && oldCoord != []) {
|
if (oldCoord != 'undefined' && oldCoord != []) {
|
||||||
|
@ -408,35 +408,60 @@ let WaypointCollection = function () {
|
||||||
return lengthLine.map(cumulativeSum);
|
return lengthLine.map(cumulativeSum);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
self.getElevation = async function(globalSettings) {
|
self.getElevation = async function(globalSettings) {
|
||||||
const [nLoop, point2measure, altPoint2measure, namePoint2measure, refPoint2measure] = self.getPoint2Measure(true);
|
const [nLoop, point2measure, altPoint2measure, namePoint2measure, refPoint2measure] = self.getPoint2Measure(true);
|
||||||
let lengthMission = self.getDistance(true);
|
let lengthMission = self.getDistance(true);
|
||||||
let totalMissionDistance = lengthMission[lengthMission.length -1].toFixed(1);
|
let totalMissionDistance = lengthMission[lengthMission.length -1].toFixed(1);
|
||||||
let samples;
|
let samples;
|
||||||
|
let sampleMaxNum;
|
||||||
|
let sampleDistance;
|
||||||
|
|
||||||
|
if (globalSettings.mapProviderType == 'bing') {
|
||||||
|
sampleMaxNum = 1024;
|
||||||
|
sampleDistance = 30;
|
||||||
|
} else { // use opentopodata.org instead
|
||||||
|
sampleMaxNum = 99;
|
||||||
|
sampleDistance = 60;
|
||||||
|
}
|
||||||
|
|
||||||
if (point2measure.length <= 2){
|
if (point2measure.length <= 2){
|
||||||
samples = 1;
|
samples = 1;
|
||||||
}
|
}
|
||||||
else if (Math.trunc(totalMissionDistance/30) <= 1024 && point2measure.length > 2){
|
else if (Math.trunc(totalMissionDistance / sampleDistance) <= sampleMaxNum && point2measure.length > 2){
|
||||||
samples = Math.trunc(totalMissionDistance/30);
|
samples = Math.trunc(totalMissionDistance / sampleDistance);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
samples = 1024;
|
samples = sampleMaxNum;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (globalSettings.mapProviderType == 'bing') {
|
if (globalSettings.mapProviderType == 'bing') {
|
||||||
if (point2measure.length >1) {
|
if (point2measure.length >1) {
|
||||||
const response = await fetch('http://dev.virtualearth.net/REST/v1/Elevation/Polyline?points='+point2measure+'&heights=ellipsoid&samples='+String(samples+1)+'&key='+globalSettings.mapApiKey);
|
const response = await fetch('http://dev.virtualearth.net/REST/v1/Elevation/Polyline?points='+point2measure+'&heights=ellipsoid&samples='+String(samples+1)+'&key='+globalSettings.mapApiKey);
|
||||||
const myJson = await response.json();
|
const myJson = await response.json();
|
||||||
elevation = myJson.resourceSets[0].resources[0].elevations;
|
elevation = myJson.resourceSets[0].resources[0].elevations;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
const response = await fetch('http://dev.virtualearth.net/REST/v1/Elevation/List?points='+point2measure+'&heights=ellipsoid&key='+globalSettings.mapApiKey);
|
const response = await fetch('http://dev.virtualearth.net/REST/v1/Elevation/List?points='+point2measure+'&heights=ellipsoid&key='+globalSettings.mapApiKey);
|
||||||
const myJson = await response.json();
|
const myJson = await response.json();
|
||||||
elevation = myJson.resourceSets[0].resources[0].elevations;
|
elevation = myJson.resourceSets[0].resources[0].elevations;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
elevation = "NA";
|
let coordList = "";
|
||||||
|
point2measure.forEach(function (item) {
|
||||||
|
coordList += item + '|';
|
||||||
|
});
|
||||||
|
const response = await fetch('https://api.opentopodata.org/v1/aster30m?locations='+coordList+'&samples='+String(samples+1));
|
||||||
|
const myJson = await response.json();
|
||||||
|
var elevation = [];
|
||||||
|
for (var i = 0; i < myJson.results.length; i++){
|
||||||
|
if (myJson.results[i].elevation == null) {
|
||||||
|
elevation[i] = 0;
|
||||||
|
} else {
|
||||||
|
elevation[i] = myJson.results[i].elevation;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//console.log("elevation ", elevation);
|
//console.log("elevation ", elevation);
|
||||||
return [lengthMission, totalMissionDistance, samples, elevation, altPoint2measure, namePoint2measure, refPoint2measure];
|
return [lengthMission, totalMissionDistance, samples, elevation, altPoint2measure, namePoint2measure, refPoint2measure];
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue