我正在尝试测量两点(经度,纬度)之间的距离。我的问题是,在iOS和Android上,我得到了不同的结果。
我使用了这个网站进行了检查,并且结果显示Android的数值是正确的。
iOS中我使用了MapKit方法distanceFromLocation:
来获取距离:
以下是我的测试位置:
P1: 48.643798, 9.453735 P2: 49.495150, 9.782150
iOS距离: 97717米 Android距离: 97673米
为什么会出现这种情况?我该如何解决?
我正在尝试测量两点(经度,纬度)之间的距离。我的问题是,在iOS和Android上,我得到了不同的结果。
我使用了这个网站进行了检查,并且结果显示Android的数值是正确的。
iOS中我使用了MapKit方法distanceFromLocation:
来获取距离:
以下是我的测试位置:
P1: 48.643798, 9.453735 P2: 49.495150, 9.782150
iOS距离: 97717米 Android距离: 97673米
为什么会出现这种情况?我该如何解决?
我遇到了一个不同的问题,结果偶然发现了我们两个问题的答案:
iOS上可以这样操作:
meters1 = [P1 distanceFromLocation:P2]
// meters1 is 97,717
meters2 = [P2 distanceFromLocation:P1]
// meters2 is 97,630
meters = (meters1 + meters2)/2
// meters (the average of the first two) is 97,673
有多种方法可以根据地球曲率计算长/纬坐标之间的距离,没有正确或错误的方法。最可能是这两个平台使用稍微不同的模型。
以下是一些用于自行计算距离的公式。 http://www.movable-type.co.uk/scripts/latlong.html
如果您绝对需要它们相同,则只需使用其中一种公式实现自己的计算,然后您可以确保在两个平台上获得相同的结果。