我正在計算兩個地理座標之間的距離。我正在測試我的應用程序對3-4其他應用程序。當我計算距離時,我的計算結果平均爲3.3英里,而其他應用則爲3.5英里。對於我正在嘗試執行的計算而言,這是一個很大的區別。有沒有好的課程庫用於計算距離?我在C#中計算它是這樣的:計算兩個緯度和經度地理座標之間的距離
public static double Calculate(double sLatitude,double sLongitude, double eLatitude,
double eLongitude)
{
var radiansOverDegrees = (Math.PI/180.0);
var sLatitudeRadians = sLatitude * radiansOverDegrees;
var sLongitudeRadians = sLongitude * radiansOverDegrees;
var eLatitudeRadians = eLatitude * radiansOverDegrees;
var eLongitudeRadians = eLongitude * radiansOverDegrees;
var dLongitude = eLongitudeRadians - sLongitudeRadians;
var dLatitude = eLatitudeRadians - sLatitudeRadians;
var result1 = Math.Pow(Math.Sin(dLatitude/2.0), 2.0) +
Math.Cos(sLatitudeRadians) * Math.Cos(eLatitudeRadians) *
Math.Pow(Math.Sin(dLongitude/2.0), 2.0);
// Using 3956 as the number of miles around the earth
var result2 = 3956.0 * 2.0 *
Math.Atan2(Math.Sqrt(result1), Math.Sqrt(1.0 - result1));
return result2;
}
我該做什麼錯?我應該先計算公里數,然後轉換爲英里數嗎?
地球平均半徑= 6,371千米=3958.76英里 – 2011-06-16 02:14:39
http://stackoverflow.com/questions/27928/how-do-i-calculate-distance-between-two-latitude-longitude-points – 2011-06-16 02:19:28
不應該這是對gis.stackexchange.com – 2011-06-16 02:22:25