صيغة الحساب هي كما يلي:
يوضح:
1. يتم التعبير عن خط الطول وخط العرض في الصيغة بالراديان؛
2. يمثل Lat1 Lng1 خط الطول وخط العرض للنقطة A على التوالي، ويمثل Lat2 Lng2 خط الطول وخط العرض للنقطة B على التوالي؛
3. a=Lng1 -Lng2 هو الفرق بين خطي العرض بنقطتين؛ b=Lat1 - Lat2 هو الفرق بين خطي الطول لنقطتين؛
4. 6378.137 هو نصف قطر الأرض بالكيلومترات؛
وظيفة تنفيذ C# هي كما يلي:
المسافة المزدوجة العامة (Double lat1، double lat1، double lat2، double lng2)
{
double radLng1 = lng1 * Math.PI / 180.0;
double radLng2 = lng2 * Math.PI / 180.0;
مزدوج أ = radLng1 - radLng2؛
مزدوج ب = (lat1-lat2) * Math.PI / 180.0؛
مزدوج s = 2 * Math.Asin(Math.Sqrt(Math.Pow(Math.Sin(a/2), 2) +
Math.Cos(radLng1) * Math.Cos(radLng2) * Math.Pow(Math.Sin(b/2), 2)))* 6378.137;
s =Math.Round(s * 10000) / 10000;
العودة ق.
}
تم اجتيازه بشكل صحيح بعد التحقق الفعلي (وحدة النتيجة التي تم إرجاعها هي: كيلومتر).