Wednesday, November 21, 2012

How to find distance in km between two lat long in ANDROID


package ranjit.static_var_fun;

public class RanjitStaticDataNFun {

public static float distFrom(float lat1, float lng1, float lat2, float lng2) {
                 // This is earth radius
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;
float dist_in_km = (new Float(dist * meterConversion).floatValue()) / 1000;
                //distance in an KM
return dist_in_km;
}

}

No comments:

Post a Comment