计算两个经纬度的直线距离
/**
*
* @param $lng1 float 经度
* @param $lat1 float 纬度
* @param $lng2 float 经度
* @param $lat2 float 纬度
*/
public static function getDistance($lng1, $lat1, $lng2, $lat2) {
$EARTH_RADIUS = 6378.137;
$radLat1 = self::rad($lat1);
$radLat2 = self::rad($lat2);
$a = $radLat1 - $radLat2;
$b = self::rad($lng1) - self::rad($lng2);
$s = 2 * asin(sqrt(pow(sin($a / 2), 2) + cos($radLat1) * cos($radLat2) * pow(sin($b / 2), 2)));
$s = $s * $EARTH_RADIUS;
if ($s < 1) {
$s = round($s * 1000);
// $s.='m';
} else {
$s = round($s, 6);
$s=$s*1000;
// $s.='km';
}
return $s;
}
public static function rad($d) {
return $d * 3.1415926535898 / 180.0;
}
欢迎加群:116279623 入群答案:CRMEB
好消息CRMEB系统开源啦! 开源地址:http://github.crmeb.net/u/lsq
演示站后台:http://demo25.crmeb.net 账号:demo 密码:crmeb.com