MKMetersBetweenMapPoints错误地以米为单位返回距离

时间:2012-05-13 09:14:10

标签: mkmapview mapkit

运行此代码:

NSLog(@"%f", MKMetersBetweenMapPoints(MKMapPointMake(33.6523, -118.507), MKMapPointMake(34.516, -117.628)));

返回:

0.015819

当预期输出应为~136900时。我做错了什么?

1 个答案:

答案 0 :(得分:4)

看起来你给MKMapPointMake()经常的纬度和经度。 MKMapPoint包含xy值,而不是纬度和经度。

使用MKMapPointForCoordinate(myLocation)将您的位置转换为地图点,然后将其提供给MKMetersBetweenMapPoints()功能。

或者更容易,使用-distanceFromLocation:和两个CLLocation对象。考虑到地球的曲率,它会以米为单位返回距离。