|
|
|
@ -414,15 +414,27 @@ let WaypointCollection = function () {
|
|
|
|
|
let lengthMission = self.getDistance(true);
|
|
|
|
|
let totalMissionDistance = lengthMission[lengthMission.length -1].toFixed(1);
|
|
|
|
|
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){
|
|
|
|
|
samples = 1;
|
|
|
|
|
}
|
|
|
|
|
else if (Math.trunc(totalMissionDistance/30) <= 1024 && point2measure.length > 2){
|
|
|
|
|
samples = Math.trunc(totalMissionDistance/30);
|
|
|
|
|
else if (Math.trunc(totalMissionDistance / sampleDistance) <= sampleMaxNum && point2measure.length > 2){
|
|
|
|
|
samples = Math.trunc(totalMissionDistance / sampleDistance);
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
samples = 1024;
|
|
|
|
|
samples = sampleMaxNum;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (globalSettings.mapProviderType == 'bing') {
|
|
|
|
|
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);
|
|
|
|
@ -436,7 +448,20 @@ let WaypointCollection = function () {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
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);
|
|
|
|
|
return [lengthMission, totalMissionDistance, samples, elevation, altPoint2measure, namePoint2measure, refPoint2measure];
|
|
|
|
|