두 개의 GeoCoordinates 사이의 거리를 계산하고 있습니다. 3-4 개의 다른 앱에 대해 앱을 테스트하고 있습니다. 거리를 계산할 때 계산을 위해 평균 3.3 마일을 얻는 반면 다른 앱은 3.5 마일을 얻는 경향이 있습니다. 내가 수행하려는 계산에 큰 차이가 있습니다. 거리를 계산하기 위해 좋은 클래스 라이브러리가 있습니까? C #에서 다음과 같이 계산하고 있습니다.
public static double Calculate(double sLatitude,double sLongitude, double eLatitude,
double eLongitude)
{
var radiansOverDegrees = (Math.PI / 180.0);
var sLatitudeRadians = sLatitude * radiansOverDegrees;
var sLongitudeRadians = sLongitude * radiansOverDegrees;
var eLatitudeRadians = eLatitude * radiansOverDegrees;
var eLongitudeRadians = eLongitude * radiansOverDegrees;
var dLongitude = eLongitudeRadians - sLongitudeRadians;
var dLatitude = eLatitudeRadians - sLatitudeRadians;
var result1 = Math.Pow(Math.Sin(dLatitude / 2.0), 2.0) +
Math.Cos(sLatitudeRadians) * Math.Cos(eLatitudeRadians) *
Math.Pow(Math.Sin(dLongitude / 2.0), 2.0);
// Using 3956 as the number of miles around the earth
var result2 = 3956.0 * 2.0 *
Math.Atan2(Math.Sqrt(result1), Math.Sqrt(1.0 - result1));
return result2;
}
내가 뭘 잘못하고 있니? 먼저 km 단위로 계산 한 다음 마일로 변환해야합니까?