2013-02-28 76 views
0

我環顧四周,並提及了haversine公式以確定兩個座標(lat1,lng1)和(lat2,lng2)之間的距離。兩個座標之間的距離在php使用haversine

我實現了這個代碼:

function haversineGreatCircleDistance(
    $latitudeFrom, $longitudeFrom, $latitudeTo, $longitudeTo, $earthRadius = 6371000) 
{ 
    // convert from degrees to radians 
    $latFrom = deg2rad($latitudeFrom); 
    $lonFrom = deg2rad($longitudeFrom); 
    $latTo = deg2rad($latitudeTo); 
    $lonTo = deg2rad($longitudeTo); 

    $latDelta = $latTo - $latFrom; 
    $lonDelta = $lonTo - $lonFrom; 

    $angle = 2 * asin(sqrt(pow(sin($latDelta/2), 2) + 
    cos($latFrom) * cos($latTo) * pow(sin($lonDelta/2), 2))); 
    return $angle * $earthRadius; 
} 

,我試圖確定:

1)什麼單位,這是迴歸? (進球以英尺爲單位)

2)這個方程寫的是正確的嗎?

例如,這兩點之間應該有什麼距離?

(32.8940695525,-96.7926336453)和(33.0642604502,-96.8064332754)?

我從上面的公式獲得18968.0903312。

謝謝!

回答

3

1)這是返回什麼單位? (目標是以英尺爲單位)

無論你提供地球半徑的單位。

2)這個方程寫的是正確的嗎?

測試它。您可以將結果與現有的Haversine公式實現進行比較,如this one

+0

因此,因爲我將地球的半徑設置爲$ earthRadius = 6371000,單位是米? – NCoder 2013-02-28 16:45:14

+0

http://www.wolframalpha.com/input/?i=Radius+of+the+Earth+in+meters – 2013-02-28 16:49:28

相關問題