/** * 根据经纬度计算两点间距离 * @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;//英里 }}