地理座標間の距離の不一致の計算
地理座標間の距離を計算しようとしているときに、得られた結果が生成された結果と異なることが観察されました。他のアプリケーションによって。 C# で採用されている計算方法:
public static double Calculate(double sLatitude,double sLongitude, double eLatitude, double eLongitude) { ... }
は、Haversine の公式に基づいています。ただし、他のアプリケーションで取得された 3.5 マイルと比較して、結果は平均 3.3 マイルになります。
不一致の根本原因
不一致が原因ではない可能性があると仮定されています。計算方法そのものではなく、実装の詳細についてです。
潜在的解決策
より正確な距離計算については、.NET Framework 4 で導入された GeoCooperative クラスの利用を検討してください。このクラスは、2 つの GeoCoowned オブジェクト間の距離を直接計算する GetDistanceTo メソッドを提供します。
// 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 中国語 Web サイトの他の関連記事を参照してください。