/** * 計算兩組經緯度座標間的距離 * params:lat1緯度1,lng1經度1,lat2緯度2,lng2經度2,len_type(1:m|2:km); * Echo GetDistance($lat1,$lng1,$lat2,$lng2).'米'; */ function GetDistance($lat1,$lng1,$lat2,$lng2,$len_type=1,$decimal=2){ $EARTH_RADIUS=6378.137; //地球半徑,假設地球是規則的球體 $PI=3.1415926; //圓周率 $radLat1 = $lat1 * $PI / 180.0; $radLat2 = $lat2 * $PI / 180.0; $a = $radLat1 - $radLat2; $b = ($lng1 * $PI / 180.0) - ($lng2 * $PI / 180.0); $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*1000); if($len_type>1){ $s /= 1000; } return round($s,$decimal); }