霜天部落 | 关注LAMP高性能、高并发架构的设计与研究

PHP根据两个经纬度坐标计算距离

今后项目中要用到PHP根据两个经纬度坐标计算距离,特寻找了一个PHP函数,备着用。

function rad($d)  
{  
    return $d * M_PI / 180.0;  
}  
/**
* 获取两个坐标点之间的距离,单位km,小数点后2位
*/
function GetDistance($lat1, $lng1, $lat2, $lng2)  
{  
    $EARTH_RADIUS = 6378.137;  
    $radLat1 = rad($lat1);  
    $radLat2 = rad($lat2);  
    $a = $radLat1 - $radLat2;  
    $b = rad($lng1) - rad($lng2);  
    $s = 2 * asin(sqrt(pow(sin($a/2),2) + cos($radLat1)*cos($radLat2)*pow(sin($b/2),2)));  
    $s = $s * $EARTH_RADIUS;  
    $s = round($s * 100) / 100;  
    return $s;  
}

举例:

echo GetDistance(40.003, 116.385, 40.035, 116.392);

 



There are 1 Comments to "PHP根据两个经纬度坐标计算距离"