Подтвердить что ты не робот

Является ли Формула Хаверсина или Формула Винченти лучше для вычисления расстояния?

Что лучше для расчета расстояния между двумя точками широты/долготы, Формулой Хаверсина или Формулой Vincenty? Почему?

Расстояние, очевидно, рассчитывается на Земле. Координаты WGS84 и GCJ02 влияют на расчет или расстояние (формула Vincenty учитывает ось WGS84)?

Например, в Android, Формула Хаверсина используется в Google Map Utils, но Формула Vincenty используется объектом android.Location (Location.distanceBetween()).

4b9b3361

Ответ 1

Haversine - это более простое вычисление, но оно не обеспечивает высокую точность предложений Vincenty.

Vincenty является более точным, но также более интенсивно вычислит и поэтому будет работать медленнее и увеличивать использование батареи.

Как и что-либо "лучше", речь идет о вашем конкретном приложении. Для вашего приложения, Vincenty может быть "лучшим" выбором, чем Haversine, но для другого приложения Haversine может быть лучшим выбором. Вам нужно будет ознакомиться с особенностями ваших случаев использования и сделать определение, основанное на том, что вы там найдете.

Ответ 2

Хаверсине и Винченти - два алгоритма для решения разных проблемы. Хаверсин вычисляет большое расстояние круга на сфере в то время как Винценти вычисляет кратчайшее (геодезическое) расстояние на поверхности эллипсоид революции. Таким образом, ответ на ваш вопрос может быть нарушен на 2 части:

  • Вы хотите вычислить расстояние на сфере на эллипсоиде?
  • Насколько точны Haversine или Vincenty при расчете данной проблемы?

Для наземных применений эллипсоид революции является разумным приближение к "среднему уровню моря"; ошибка & plusmn; 100 м. уплощение этого эллипсоида невелико, около 1/300, и поэтому может быть аппроксимируется сферой (равный объем, например).

Большие расстояния на расстоянии отличаются от геодезических расстояний до 0,5%. В некоторые приложения, например, какое расстояние от мыса до Каира?, этой ошибкой можно пренебречь. В других приложениях, например, при определении морские границы, он слишком велик (он 5 м на расстоянии 1 км). В общем, вы более безопасны с использованием геодезической дистанции.

Если вас интересует дистанция (на машине, лодке или самолете), существует множество ограничений на пути, и ни великие круг или геодезическое расстояние, которые измеряют длину кратчайших путей на идеальной поверхности, было бы уместно.

О том, являются ли алгоритмы точными:

Haversine точно округляет, если очки почти антиподальны. Лучшие формулы приведены в Статья в Википедии о больших расстояниях.

Винчентий обычно с точностью до 0,1 мм. Однако, если точки почти антипод, алгоритм не сходится, и ошибка намного больше. Я даю лучший алгоритм для решения геодезической задачи в Алгоритмы для геодезических. См. Также Статья в Википедии о геодезических на эллипсоиде.

Решение геодезической задачи происходит медленнее, чем решение для большой круг. Но это все еще очень быстро (около 1 м/с за расчет), поэтому это не должно быть основанием для предпочтения больших расстояний на расстоянии.

ADENDUM

Здесь - это пакет Java, который реализует мой алгоритм для нахождения геодезических расстояний. В отличие от метода Винченти, это точно к округлению и сходится повсюду.