我有特定地點的經度和緯度,我想計算距離,所以我怎麼計算它?如何計算經度和緯度兩點之間的距離?
回答
CLLocation *location1 = [[CLLocation alloc] initWithLatitude:lat1 longitude:long1];
CLLocation *location2 = [[CLLocation alloc] initWithLatitude:lat2 longitude:long2];
NSLog(@"Distance i meters: %f", [location1 distanceFromLocation:location2]);
[location1 release];
[location2 release];
您還需要添加CoreLocation.framework
到您的項目,並添加import語句:
#import <CoreLocation/CoreLocation.h>
這可能不是這樣做的最有效的方法,但它會奏效。
您可以將經緯度指定的兩個位置視爲向量。假定座標已被轉換成cartesion座標,計算兩個向量的點積。
由於V1 =(X1,Y1,Z1)和V2 =(X2,Y2,Z2),然後...
v1 dot v2 = magnitude(v1) * magnitude(v2) * cos (theta)
便利,V1和V2的幅度是一樣的..地球的半徑(R)。
x1*x2 + y1*y2 + z1*z2 = R*R*cos(theta)
解決θ。
theta = acos ((x1*x2 + y1*y2 + z1*z2)/(R * R));
現在你有兩個向量之間的角度弧度。愨當旅行橫跨地球的表面是這樣的兩個點的距離...
distance = theta * R.
有可能是一個更簡單的方法完全球面座標的範圍內做到這一點,但我在這方面的數學太模糊 - 因此轉換爲笛卡爾座標。
要轉換成直角座標系...
讓阿爾法是緯度,和β是經度。
x = R * cos (alpha) * cos (beta)
y = R * sin (alpha)
z = R * cos (alpha) * sin (beta)
不要忘記,數學函數通常以弧度爲單位,緯度/經度以度爲單位。
請注意,這是一個近似值,因爲地球更像是一個扁球體(它變成梨形,更準確),其表面不平整。 – outis 2010-04-16 18:32:35
請參閱'proj.4'網站,以瞭解地球使用球形模型的錯誤(http://trac.osgeo.org/proj/wiki/GeodesicCalculations)。底線,他們說,如果你爲R選擇一個好的價值,你可以用這種方法在1%以內。 – mtrw 2010-04-17 00:00:35
+1。據推測,這個答案可能是「如何計算一個大圓路線」(航海導航術語)。 UPVOTE免責聲明:我沒有能力驗證這個數學。我只是羨慕製作它的能力,我推崇清晰的表述。 – Smandoli 2010-04-19 15:49:16
我已經完成了數學計算,現在可以大大簡化解決方案。
想象一下,如果我們旋轉地球,使我們的第一個矢量在0度和0度的經度。第二個矢量將位於(alpha2 - alpha1)緯度和(beta2 - beta1)緯度。
由於...
sin(0) = 0 and cos(0) = 1
我們的點積simplies到...
cos(delta_alpha) * cos(delta_beta) = cos(theta)
數學的其餘部分保持不變。
theta = acos (cos(delta_alpha) * cos(delta_beta))
distance = radius * theta
希望這會有所幫助。
- 1. 計算兩個緯度 - 經度點之間的距離? - 鈦
- 2. 計算兩點之間的距離(經度,緯度)
- 3. 如何找到緯度/經度/緯度點之間的距離?
- 4. 使用緯度經度和海拔(海拔)計算兩點之間的距離
- 5. PIG:計算緯度和經度對之間的最大距離
- 6. Sql查詢計算2緯度和經度之間的距離
- 7. J2ME - 計算2緯度和經度之間的距離
- 8. 如何使用angulajs計算兩個緯度和經度之間的距離?
- 9. 兩個經緯度之間的距離
- 10. 分別計算兩個緯度和兩個經度之間的距離
- 11. 計算距離另一緯度/經度點米的緯度和經度
- 12. 計算兩個長/經緯度之間的距離
- 13. 在excel中,如何計算兩組大點與經緯度之間的距離?
- 14. 如何快速估算兩個(緯度,經度)點之間的距離?
- 15. SQL Server計算2組經度/緯度列之間的距離
- 16. 如何計算距離另一點一定距離的點的緯度/經度?
- 17. 計算兩個緯度和經度地理座標之間的距離
- 18. 用於計算兩個緯度和經度之間距離的MySQL函數
- 19. 使用rethinkdb 2個經緯度點之間計算距離
- 20. 測量兩個緯度/經度點之間的距離
- 21. PHP兩點之間的距離緯度經度
- 22. 獲取兩個經度緯度點之間的駕駛距離
- 23. 使用距離和參考點計算經度和緯度
- 24. 如何根據緯度和經度獲得兩個地點之間的距離?
- 25. 兩個經度和緯度之間的距離
- 26. 如何使用緯度和經度計算距離和方位?
- 27. 如何使用我的位置來計算使用緯度和經度的兩點之間的距離
- 28. 如何使用緯度和經度計算距離?
- 29. 如何使用相應的緯度和經度值計算兩個地點之間的距離?
- 30. 根據起點,方位和距離計算新經度和緯度的計算?
你不能從經度和緯度獲得距離。距離需要兩個緯度和經度。 – 2010-04-16 10:34:00
這已經是幾個最近的SO問題的主題,看看周圍。 – 2010-04-16 10:34:11
我有2緯度和經度... – 2010-04-16 10:39:44