PHP根据经纬度计算距离
话不多说上代码
定义和用法
deg2rad() 函数将角度转换为弧度。
sqrt() 函数返回一个数的平方根。
asin() 函数返回不同数值的反正弦,返回的结果是介于 -PI/2 与 PI/2 之间的弧度值
pow() 函数返回 x 的 y 次方。
round() 对浮点数进行四舍五入
/**
*求两个已知经纬度之间的距离,单位为千米
*@param lng1,lng2 经度
*@param lat1,lat2 纬度
*@return float 距离,单位千米
**/
function distance($lng1,$lat1,$lng2,$lat2)//根据经纬度计算距离
{
//将角度转为弧度
$radLat1=deg2rad($lat1);
$radLat2=deg2rad($lat2);
$radLng1=deg2rad($lng1);
$radLng2=deg2rad($lng2);
$a=$radLat1-$radLat2;//两纬度之差,纬度<90
$b=$radLng1-$radLng2;//两经度之差纬度<180
$s=2*asin(sqrt(pow(sin($a/2),2)+cos($radLat1)*cos($radLat2)*pow(sin($b/2),2)))*6378.137;
return round($s,2);
}