1 /** 2 * 计算两组经纬度座标间的距离 3 * params:lat1纬度1,lng1经度1,lat2纬度2,lng2经度2,len_type(1:m|2:km); 4 * Echo GetDistance($lat1,$lng1,$lat2,$lng2).‘米‘; 5 */ 6 function GetDistance($lat1,$lng1,$lat2,$lng2,$len_type=1,$decimal=2){ 7 $EARTH_RADIUS=6378.137; //地球半径,假设地球是规则的球体 8 $PI=3.1415926; //圆周率 9 $radLat1 = $lat1 * $PI / 180.0; 10 $radLat2 = $lat2 * $PI / 180.0; 11 $a = $radLat1 - $radLat2; 12 $b = ($lng1 * $PI / 180.0) - ($lng2 * $PI / 180.0); 13 $s = 2 * asin(sqrt(pow(sin($a/2),2) + cos($radLat1) * cos($radLat2) * pow(sin($b/2),2))); 14 $s = $s * $EARTH_RADIUS; 15 $s = round($s*1000); 16 if($len_type>1){ 17 $s /= 1000; 18 } 19 return round($s,$decimal); 20 }
时间: 2024-09-29 01:23:13