首页 > 软件开发 > PHP > php获取两个经纬度之间的距离 使用 Haversine 公式计算两个经纬度之间的距离

php获取两个经纬度之间的距离 使用 Haversine 公式计算两个经纬度之间的距离

可以使用 Haversine 公式计算两个经纬度之间的距离。公式如下:

a = sin²(Δlat/2) + cos(lat1) * cos(lat2) * sin²(Δlon/2)
c = 2 * atan2( √a, √(1−a) )
d = R * c

其中,Δlat 和 Δlon 分别为两个点纬度和经度的差值,R 为地球半径,可以取平均值6371km,d 即为两个点之间的距离。

以下是一个计算两个经纬度之间距离的 PHP 函数:

function getDistance($lat1, $lon1, $lat2, $lon2) {
    $R = 6371; // 地球半径,单位为km
    $dLat = deg2rad($lat2 - $lat1);
    $dLon = deg2rad($lon2 - $lon1);
    $a = sin($dLat/2) * sin($dLat/2) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * sin($dLon/2) * sin($dLon/2);
    $c = 2 * atan2(sqrt($a), sqrt(1-$a));
    $d = $R * $c;
    return $d;
}

调用方式:

$distance = getDistance(39.908722, 116.397496, 39.918722, 116.407496);
echo "两点距离为:" . $distance . 'km';

其中,上述示例代码计算的是北京市中心的两个经纬度之间的距离。

猜你喜欢

php二维数组排序

php二维数组排序

fastadmin报错Uncaught SyntaxError: Unexpected token '<'

fastadmin报错Uncaught SyntaxError: Unexpected token '<'

php二维数组排序

php二维数组排序

PHP判断字符串是否完全为空值,0返回为真

PHP判断字符串是否完全为空值,0返回为真

解决PHP在POST传值中超过1000个参数字段无法完整接收参数丢失的问题

解决PHP在POST传值中超过1000个参数字段无法完整接收参数丢失的问题

0 条评论

img 登陆后才能评论哦~