3
我在PHP
中有一個函數,它計算兩個地方之間的距離。給出錯誤值的計算距離
這裏是PHP代碼:
function distance($lat1, $lon1, $lat2, $lon2) {
$earth_radius = 6371;
$delta_lat = $lat2 - $lat1 ;
$delta_lon = $lon2 - $lon1 ;
$distance = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($delta_lon)) ;
$distance = acos($distance);
$distance = rad2deg($distance);
$distance = $distance * 60 * 1.1515;
$distance = round($distance, 4);
return $distance = $distance * 1.609344;
}
它給各地25 km
好計算,但周圍500 km
的計算是錯誤的。 我的另一個問題是it really giving miles or kilometers?
例如,這map給出443 km
從Morbi
到Surat
的距離,但功能給我好了的274 km
我這不是數學天才,但這篇文章幫助我,當我嘗試這些事情:http://www.meridianworlddata.com/Distance-Calculation.asp – Daniel
6371是地球的(近似)半徑以公里爲單位,所以答案應該在km。請注意,任何幾何計算都是*直線*距離而不是*繞道*距離。你正在計算兩點之間的直線(如果計算正確的話); Google路線指定的路程長度將會更長。 –
'@Andrew Leach'非常感謝您的評論。但任何其他公式來計算完美的距離? (在PHP中) – Veer