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