两个经纬度之间的距离
public function haversineGreatCircleDistance($latitude1, $longitude1, $latitude2, $longitude2)
{
// 地球半径(单位:米)
$earthRadius = 6371009;
// 将角度转换为弧度
$latitude1 = deg2rad($latitude1);
$latitude2 = deg2rad($latitude2);
$longitude1 = deg2rad($longitude1);
$longitude2 = deg2rad($longitude2);
// 计算经纬度差值
$latitudeDelta = $latitude2 - $latitude1;
$longitudeDelta = $longitude2 - $longitude1;
// 计算Fn
$y = sin($latitudeDelta / 2) ** 2 + cos($latitude1) * cos($latitude2) * sin($longitudeDelta / 2) ** 2;
$distance = 2 * atan2(sqrt($y), sqrt(1 - $y)) * $earthRadius;
$distance = substr($distance,0,8);
$distance = bcdiv($distance, 1000, 2);
return $distance;
}