ฉันคำนวณระยะทางระหว่างสอง 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;
}
ฉันทำอะไรผิดได้ ฉันควรคำนวณเป็นกิโลเมตรก่อนแล้วแปลงเป็นไมล์หรือไม่