ايران ويج

نسخه‌ی کامل: سورس سی شارپ اختلاف دو نقطه جغرافیا
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام با این سوری میتونید اختلاف جغرافیای دو نقطه را بدست بیارید 
کد برای بدست اوردن نقطه جغرافیا اینجا 

کد:
using System;

public class Geography
{
   public static double Haversine(double lat1, double lon1, double lat2, double lon2)
   {
       // تبدیل درجه به رادیان
       double rlat1 = Math.PI * lat1 / 180;
       double rlon1 = Math.PI * lon1 / 180;
       double rlat2 = Math.PI * lat2 / 180;
       double rlon2 = Math.PI * lon2 / 180;

       // فرمول هاورسین
       double dlon = rlon2 - rlon1;
       double dlat = rlat2 - rlat1;

       double a = Math.Pow(Math.Sin(dlat / 2), 2) + Math.Cos(rlat1) * Math.Cos(rlat2) * Math.Pow(Math.Sin(dlon / 2), 2);
       double c = 2 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1 - a));

       // شعاع کره زمین بر حسب کیلومتر
       double r = 6371;

       // محاسبه فاصله
       double distance = r * c;

       return distance;
   }

   public static void Main(string[] args)
   {
       // مثال
       double lat1 = 35.6892;  // عرض جغرافیایی نقطه 1
       double lon1 = 51.3890;  // طول جغرافیایی نقطه 1
       double lat2 = 34.6416;  // عرض جغرافیایی نقطه 2
       double lon2 = 50.8754;  // طول جغرافیایی نقطه 2

       double distance = Haversine(lat1, lon1, lat2, lon2);
       Console.WriteLine("فاصله بین دو نقطه: " + distance + " کیلومتر");
   }
}