У меня также были проблемы с формулой haversine на этой странице.Я знаю, что это не совсем ответ на ваш вопрос, но я добился большего успеха с формулой закона косинусов, которая дает те же результаты, что и Google Earth.В случае, если это помогает, это выглядело так:
public double getDistance(double lat1, double lon1, double lat2, double lon2) {
double latA = Math.toRadians(lat1);
double lonA = Math.toRadians(lon1);
double latB = Math.toRadians(lat2);
double lonB = Math.toRadians(lon2);
double cosAng = (Math.cos(latA) * Math.cos(latB) * Math.cos(lonB-lonA)) +
(Math.sin(latA) * Math.sin(latB));
double ang = Math.acos(cosAng);
double dist = ang * EARTH_RADIUS;
return dist;
}
РЕДАКТИРОВАТЬ:
Я попробовал ваши координаты в Google Maps и Google Earth и в моем коде, и яЯ получаю 49 м для всех из них.Может быть, никогда не было проблем?