Как рассчитать короткие и длинные расстояния через Haversine? - PullRequest
1 голос
/ 26 марта 2010

Я ищу способ рассчитать расстояние между 2 точками на земном шаре. Нам сказали использовать Haversine, который прекрасно работает для расчета кратчайшего расстояния между двумя точками.

Теперь я хотел бы рассчитать «большое расстояние» между точками. Предположим, у вас есть 2 города: А на западе и Б на востоке. Я хочу знать расстояние от В до А, если бы я путешествовал на восток по всему земному шару, а затем достиг бы А, идущего с запада.

Я пытался изменить пару вещей в функции haversine, но, похоже, не работает.

Кто-нибудь знает, как я могу просто сделать это, используя небольшие настройки функции haversine?

Это то, что я сейчас использую:

lat1, lat2, lng1, lng2 в радианах

part1 = sin (lat2) * sin (lat1); part2 = cos (lat2) * cos (lat1) * cos (lng1 - lng2);

расстояние = 6378,8 * acos (часть1 + часть2);

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

Tnx Йерун

1 Ответ

2 голосов
/ 26 марта 2010

Окружность земли составляет приблизительно 40 075 км, отработайте короткое расстояние и вычтите его из этого.

...