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