PHP根据经纬度计算距离

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);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章