Tuesday, 17 September 2013

Calculating distance between two points represented by lat,long upto 15 feet accuracy

Calculating distance between two points represented by lat,long upto 15
feet accuracy

I have converted the formula into Java provided here. But accuracy is a
problem. We are using GPS coordinates.
We are using iPhone provided GPS location that is upto 10 decimal point
accuracy.
/*
* Latitude and Longitude are in Degree
* Unit Of Measure : 1 = Feet,2 = Kilometer,3 = Miles
*/
//TODO 3 Change Unit of Measure and DISTANCE_IN_FEET constants to Enum
public static Double calculateDistance(double latitudeA,double
longitudeA,double latitudeB,double longitudeB,short unitOfMeasure){
Double distance;
distance = DISTANCE_IN_FEET *
Math.acos(
Math.cos(Math.toRadians(latitudeA)) *
Math.cos(Math.toRadians(latitudeB))
*
Math.cos(Math.toRadians(longitudeB) -
Math.toRadians(longitudeA))
+
Math.sin(Math.toRadians(latitudeA))
*
Math.sin(Math.toRadians(latitudeB))
);
return distance;
}
And then I use Math.round(distance); to convert to long.

No comments:

Post a Comment