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);
}