Найти расстояние между двумя координатами в эллипсоиде?

18

У меня есть два набора широты и долготы.

Как мне найти расстояние между двумя точками, если я предполагаю, что Земля является идеальным эллипсоидом (с эксцентриситетом 0,0167)?

Джон Брингхерст
источник

Ответы:

16

Я бы порекомендовал проверить:
Сферический: http://www.movable-type.co.uk/scripts/latlong.html
Великий круг: http://www.movable-type.co.uk/scripts/gis-faq -5.1.html

Wallbasher
источник
1
Формулы на этой странице, кажется, игнорируют эксцентричность. Они предполагают, что Земля - ​​это сфера, а не эллипсоид.
Джон Брингхерст
Раньше я всегда использовал библиотеку, в которой были известны расстояния между некоторыми заданными широтными точками, а затем выполнял усреднение для вычисления расстояния любых неизвестных точек. Я спрошу несколько человек об этом.
Wallbasher
Ах, вторая ссылка, кажется, имеет правильную формулу. Благодарность!
Джон Брингхерст
1
Спасибо за ваш ответ @Wallbasher. Однако было бы лучше, если бы ответы могли стоять самостоятельно. Было бы очень полезно, если бы вы опубликовали соответствующую формулу вместе со своим ответом.
РК
7

Итак, вы знаете свои две широты и долготы, скажем

Вы можете рассчитать декартовы координаты для каждого:

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 милях».

Конечно, это предполагает идеальную сферу, а Земля даже не является идеальным элипсоидом, поэтому точность будет всего несколько метров.

Роуланд Шоу
источник
1
Я также собирался указать на «идеальную сферу». Вы должны знать, что этот метод даст вам различные степени точности в зависимости от того, где вы находитесь на земном шаре.
TroutSlayer
@TrotuSlayer обычно достаточно для большинства приложений, и всегда есть компромисс между скоростью и точностью. Если вам нужно быть более точным, пришло время вытащить вращающееся колесо или прибегнуть к предположениям, что Земля плоская для данной области, и достаточно двухмерных расстояний.
Роуланд Шоу
1

На странице калькулятора координат GPS и инструментов для определения расстояния есть несколько полезных инструментов . Один из них вычисляет расстояние между двумя точками. Он имеет возможность рисовать точки на карте с изображением Большого круга, а также возможность нарисовать профиль и экспортировать данные.

Фезтер
источник