计算地理坐标之间的距离差异
在尝试计算地理坐标之间的距离时,观察到获得的结果与生成的结果不同通过其他应用程序。 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中文网其他相关文章!