运行此代码:
NSLog(@"%f", MKMetersBetweenMapPoints(MKMapPointMake(33.6523, -118.507), MKMapPointMake(34.516, -117.628)));
返回:
0.015819
当预期输出应为~136900时。我做错了什么?
答案 0 :(得分:4)
看起来你给MKMapPointMake()
经常的纬度和经度。 MKMapPoint
包含x
和y
值,而不是纬度和经度。
使用MKMapPointForCoordinate(myLocation)
将您的位置转换为地图点,然后将其提供给MKMetersBetweenMapPoints()
功能。
或者更容易,使用-distanceFromLocation:
和两个CLLocation
对象。考虑到地球的曲率,它会以米为单位返回距离。