this is a follow up question that I think might help those who are wondering in details of Distance Computing: a follow up to this question : here The best answer gives us distance between 2 given point in Meter.
public static float distFrom(float lat1, float lng1, float lat2, float lng2) {
double earthRadius = 3958.75;
double dLat = Math.toRadians(lat2-lat1);
double dLng = Math.toRadians(lng2-lng1);
double a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) *
Math.sin(dLng/2) * Math.sin(dLng/2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
double dist = earthRadius * c;
int meterConversion = 1609;
return (float) (dist * meterConversion);
}
but my question starts here:
as commented under the chosen answer " The earth is not a perfect sphere, so this solution results in a slight error ". is this true? if so then how precise is it? ( in Meter )
In solution like this, I see different inputs as the earth radius from 6360 to 6379 KM. is this gap really excusable in output ?
Edit: Let's Imagine our two points are both located within a 5 KM distance.