計算地理座標之間的距離差異
在嘗試計算地理座標之間的距離時,觀察到獲得的結果與生成的結果不同透過其他應用程式。 C#中所採用的計算方法:
public static double Calculate(double sLatitude,double sLongitude, double eLatitude, double eLongitude) { ... }
以Haversine公式為基礎。然而,與其他應用程式獲得的 3.5 英里相比,結果平均為 3.3 英里。
差異根本原因
假設差異可能不是歸因於取決於計算方法本身,而不是實作細節。
潛力解
為了更精確地計算距離,可以考慮使用.NET Framework 4中引入的GeoCooperative類別。這類提供了GetDistanceTo方法,可以直接計算兩個GeoCooperative物件之間的距離:
// Create GeoCoordinate objects var sCoord = new GeoCoordinate(sLatitude, sLongitude); var eCoord = new GeoCoordinate(eLatitude, eLongitude); // Calculate distance in meters using GetDistanceTo method var distanceMeters = sCoord.GetDistanceTo(eCoord); // Convert distance from meters to miles (if desired) var distanceMiles = distanceMeters / 1609.34;
注意:不要忘記加入 System.Device 命名空間的參考。
以上是為什麼我的地理座標距離計算與其他應用程式不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!