۱۸-بهمن-۱۴۰۳, ۱۸:۲۹:۴۵
سلام با این سوری میتونید اختلاف جغرافیای دو نقطه را بدست بیارید
کد برای بدست اوردن نقطه جغرافیا اینجا
کد برای بدست اوردن نقطه جغرافیا اینجا
کد:
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 + " کیلومتر");
}
}