У мене є два набори широти і довготи.
Як я можу знайти відстань між двома місцями, якщо вважаю, що земля є ідеальним еліпсоїдом (з ексцентриситетом 0,0167)?
У мене є два набори широти і довготи.
Як я можу знайти відстань між двома місцями, якщо вважаю, що земля є ідеальним еліпсоїдом (з ексцентриситетом 0,0167)?
Відповіді:
Я рекомендую перевірити:
сферичний: http://www.movable-type.co.uk/scripts/latlong.html
Велике коло: http://www.movable-type.co.uk/scripts/gis-faq -5.1.html
Отже, ви знаєте свої дві широти та довготи, давайте скажемо
Ви можете обчислити декартові координати для кожного:
xa = (Cos(thisLat)) * (Cos(thisLong));
ya = (Cos(thisLat)) * (Sin(thisLong));
za = (Sin(thisLat));
xb = (Cos(otherLat)) * (Cos(otherLong));
yb = (Cos(otherLat)) * (Sin(otherLong));
zb = (Sin(otherLat));
А потім обчисліть велику відстань кола між двома, використовуючи:
MeanRadius * Acos(xa * xb + ya * yb + za * zb);
Цей спрощений підхід дозволяє попередньо обчислити значення x, y та z, які можна зберігати поряд із базою даних для ефективних запитів "балів у межах x миль".
Звичайно, це передбачає ідеальну сферу, а Земля навіть не є ідеальним еліпсоїдом, тому точність буде лише на кілька метрів.
На сторінці калькуляторів координат GPS Visualizer та інструментів відстані є кілька корисних інструментів . Один з них обчислює відстань між двома точками. У ньому є можливість намалювати точки на карті за допомогою великого кола, а також можливість скласти профіль та експортувати дані.