मैं दो GeoCoordinates के बीच की दूरी की गणना कर रहा हूं। मैं 3-4 अन्य ऐप्स के खिलाफ अपने ऐप का परीक्षण कर रहा हूं। जब मैं दूरी की गणना कर रहा होता हूं, तो मुझे अपनी गणना के लिए औसतन ३.३ मील की दूरी तय करनी पड़ती है, जबकि अन्य एप्लिकेशन ३.५ मील की दूरी पर होते हैं। यह उस गणना के लिए एक बड़ा अंतर है जिसे मैं प्रदर्शन करने की कोशिश कर रहा हूं। दूरी की गणना के लिए क्या कोई अच्छी श्रेणी की लाइब्रेरी हैं? मैं इसे 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;
}
मुझ से ऐसी कौनसी गलती हो जाएगी? क्या मुझे इसे पहले किमी में गणना करना चाहिए और फिर मीलों में बदलना चाहिए?