2011-06-14 63 views

回答

6

您可以使用CLLocation方法distanceFromLocation:来计算两个CLLocation之间的对象。您可以使用CLLocationManager来获取用户的当前位置,并且可以使用initWithLatitude:longitude:初始值设定项为坐标创建一个CLLocation实例。

distanceFromLocation:返回以米为单位的距离。

1

这是计算以点为单位的实例的一般公式,单位为公里。

acos(sin(lat1rad) * sin(lat2rad) + cos(lat1rad) * cos(lat2rad) * cos(lon2rad - lon1rad))) * 6378.1 

6378.1是约。以千米为单位的地球半径。确保你用弧度表示de值,而不是度数。为以防万一,将度数转换为弧度最简单的方法是:

radians = (degrees * 0.01745329) // degrees * pi over 180 

编辑:固定公式角度和弧度之间的转换。谢谢Ozzah

+2

因子对于度数是错误的:0.01745329是正确的。如果您正在进行多次长距离计算,则错误可能会加起来。 – Ozzah 2011-06-14 23:59:43

+0

你说得对。我编辑了答案。 – 2011-06-15 13:12:03