Я ищу способ найти расстояние между двумя координатами, которые также имеют данные высот, но я хочу, чтобы решение учитывало ТЕРРАУН между двумя точками, т.е. кратчайший путь между ними на земле, а не "по прямой".
Я нашел и использовал формулу Хаверсайна для расстояния «в воздухе», но, очевидно, он не даст реального расстояния, по которому человек будет идти по земле, так как между двумя точками может быть наклонэто идет вверх и / или вниз.Чем больше расстояние между точками, тем больше погрешность.
Я взял реальный файл .gpx и преобразовал его данные в формат JSON.это выглядит так:
let jsonSample = [{
"lat": "57.107297", // 0
"lon": "-5.334734",
"ele": "957.00"
}, // distance between 0 and 1 => 169.1849929515954 m (as the crow flies) elevation difference: 50.210000000000036
{
"lat": "57.106590", // 1
"lon": "-5.332253",
"ele": "1007.21"
}, // distance between 1 and 2 => 162.49601252670058 m (as the crow flies) elevation difference: 23.789999999999964
{
"lat": "57.105537", // 2 (summit)
"lon": "-5.330387",
"ele": "1031.00"
}, // distance between 2 and 3 => 32.45395539826568 m (as the crow flies) elevation difference: -13
{
"lat": "57.105284", // 3
"lon": "-5.330119",
"ele": "1018.00"
}];
Реальные расстояния должны быть длиннее, чем рассчитанные по формуле Хаверсайна.Но как мне это вычислить?