C#で2つの座標間の距離を計算する方法


using System;
public class Program
{
    public static void Main()
    {
        // 2つの座標の緯度経度を指定する
        double lat1 = 35.6895; // 緯度1
        double lon1 = 139.6917; // 経度1
        double lat2 = 37.7749; // 緯度2
        double lon2 = -122.4194; // 経度2
        // 座標間の距離を計算する
        double distance = CalculateDistance(lat1, lon1, lat2, lon2);
        // 結果を出力する
        Console.WriteLine("座標間の距離: " + distance + " km");
    }
// 座標間の距離を計算するメソッド
    public static double CalculateDistance(double lat1, double lon1, double lat2, double lon2)
    {
        double r = 6371; // 地球の半径(km)
        double dLat = ToRadians(lat2 - lat1);
        double dLon = ToRadians(lon2 - lon1);
        double a = Math.Sin(dLat / 2) * Math.Sin(dLat / 2) +
                   Math.Cos(ToRadians(lat1)) * Math.Cos(ToRadians(lat2)) *
                   Math.Sin(dLon / 2) * Math.Sin(dLon / 2);
        double c = 2 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1 - a));
        double distance = r * c;
        return distance;
    }
// 度をラジアンに変換するメソッド
    public static double ToRadians(double degrees)
    {
        return degrees * (Math.PI / 180);
    }
}

上記のコードでは、2つの座標の緯度と経度を指定し、CalculateDistanceメソッドを使用して座標間の距離を計算します。距離はキロメートル単位で返されます。