2016-01-25 103 views

回答

0

簡單情況:以十進制形式表示lat和long值,如果用戶距離位置B小於100英里,則使用標準幾何距離公式。distance = sqrt((lat1-lat2)^ 2 - (long1-long2)^2)。

更一般的情況:如果位置B可能距離用戶一個或兩個大陸,則使用大圓圈的半直線公式計算距球體上的點的距離,以獲得更準確的測量結果。讓我們叫用戶位置A並說他在lat [a],long [a],而固定點B在lat [b],long [b]。設r代表地球的半徑(約3961英里)。 (sq)(sin^2((lat [b] -lat [a])/ 2)+ cos(lat [a])* cos(lat [b])* sin(012)^2((long [b] --long [a])/ 2)))

如果您以英里爲單位指定r,則您的答案將以英里數顯示。如果您使用公里,請使用6373作爲地球半徑的好數字,當然答案會以公里計算。

確切的情況:由於地球不是一個完美的球體,所以海沙定公式不能提供完美的答案。即使除了山脈和峽谷之外,地球在赤道的半徑也大於在兩極的半徑。赤道半徑赤道約3963英里,極點約爲3950英里。所以如果你要測量世界各地的距離,並且你必須準確,你真的需要設計自己的查找表(或從谷歌地圖借用一張)。

海瑟辛公式將精確到不到半個百分點。在1000英里內,您的答案將精確到5英里之內。

半正矢式:https://en.wikipedia.org/wiki/Haversine_formula

半徑大地:https://en.wikipedia.org/wiki/Earth_radius