2 つのジオポイントの距離を計算したいと思います。ポイントは経度と緯度で与えられます。
座標は次のとおりです。
ポイント 1: 36.578581、-118.291994
ポイント 2: 36.23998、-116.83171
結果を比較するためのウェブサイトは次のとおりです。
http://www.movable-type.co.uk/scripts/latlong.html
ここで、このリンクから使用したコード: Google マップ V3 で 2 点間の距離を計算する
const double PIx = Math.PI;
const double RADIO = 6378.16;
/// <summary>
/// Convert degrees to Radians
/// </summary>
/// <param name="x">Degrees</param>
/// <returns>The equivalent in radians</returns>
public static double Radians(double x)
{
return x * PIx / 180;
}
/// <summary>
/// Calculate the distance between two places.
/// </summary>
/// <param name="lon1"></param>
/// <param name="lat1"></param>
/// <param name="lon2"></param>
/// <param name="lat2"></param>
/// <returns></returns>
public static double DistanceBetweenPlaces(double lon1, double lat1, double lon2, double lat2)
{
double R = 6371; // km
double dLat = Radians(lat2 - lat1);
double dLon = Radians(lon2 - lon1);
lat1 = Radians(lat1);
lat2 = Radians(lat2);
double a = Math.Sin(dLat / 2) * Math.Sin(dLat / 2) + Math.Sin(dLon / 2) * Math.Sin(dLon / 2) * Math.Cos(lat1) * Math.Cos(lat2);
double c = 2 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1 - a));
double d = R * c;
return d;
}
Console.WriteLine(DistanceAlgorithm.DistanceBetweenPlaces(36.578581, -118.291994, 36.23998, -116.83171));
問題は、2 つの異なる結果が得られることです。
私の結果: 163,307 km
ウェブサイトの結果: 136 km
助言がありますか???
トルティ