Я пытаюсь рассчитать расстояние между двумя координатами с помощью алгоритма Хаверсина, однако измерение отличается от того, которое указано в приложении Google «Мои карты». Например:
Для следующих координат
Широта 1: -9,170352 Долгота 1: 38,833905
Широта 2: -9,16894 Долгота 2: 38,8334022
результат с использованием алгоритма Хаверсина составляет 166 метров, а "Мои карты" Google показывает только 135 метров.
Спасибо
public static double distance(double lat1, double lat2, double lon1,double lon2) {
final int R = 6378137; // Radius of the earth
double latDistance = Math.toRadians(lat1 - lat2);
double lonDistance = Math.toRadians(lon1 - lon2);
double a = Math.sin(latDistance / 2) * Math.sin(latDistance / 2)
+ Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2))
* Math.sin(lonDistance / 2) * Math.sin(lonDistance / 2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
return R*c;
}