Code:
public static double distanceBetween(double lat1, double lon1, double lat2, double lon2)
{
try {
double lat1Rad = Math.toRadians(lat1);
double lon1Rad = Math.toRadians(lon1);
double lat2Rad = Math.toRadians(lat2);
double lon2Rad = Math.toRadians(lon2);
double dlat = lat2Rad - lat1Rad;
double dlon = lon2Rad - lon1Rad;
double a = Math.sin(dlat / 2.0) * Math.sin(dlat / 2.0) + Math.cos(lat1Rad) * Math.cos(lat2Rad) * Math.sin(dlon / 2.0) * Math.sin(dlon / 2.0);
double c = 2.0 * Float11.asin(Math.min(1.0, Math.sqrt(a)));
return 6367000.0 * c; // 6367000 = radius of Earth at 45° of latitude
}
catch (Exception e) {
return Double.NEGATIVE_INFINITY;
}
}
you have to include a float11.java library
Rocco