Tôi đang tính khoảng cách giữa hai GeoCoordins. Tôi đang thử nghiệm ứng dụng của mình với 3-4 ứng dụng khác. Khi tôi đang tính toán khoảng cách, tôi có xu hướng để có được trung bình 3,3 dặm tính của tôi trong khi các ứng dụng khác đang nhận được 3,5 dặm. Đó là một sự khác biệt lớn cho tính toán mà tôi đang cố gắng thực hiện. Có thư viện lớp nào tốt để tính khoảng cách không? Tôi đang tính toán như thế này trong 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;
}
Tôi có thể làm gì sai? Tôi có nên tính toán nó ở km đầu tiên và sau đó chuyển đổi sang dặm?