2011-06-14 78 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