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