/**
* 根据经纬度计算两点间距离
* @param int $lat1
* @param int $lon1
* @param int $lat2
* @param int $lon2
* @param string $unit
* @return float
*/
public static function distance($lat1, $lon1, $lat2, $lon2, $unit = "K")
{
$theta = $lon1 - $lon2;
$dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta));
$dist = acos($dist);
$dist = rad2deg($dist);
$miles = $dist * 60 * 1.1515; //此处返回值单位为英里
$unit = strtoupper($unit);
//单位转换
if ($unit == "K") {
return ($miles * 1.609344);//1英里=1.609344公里
} else if ($unit == "N") {
return ($miles * 0.8684);//1英里=0.8684海里
} else { //mi
return $miles;//英里
}
}