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';
其中,上述示例代码计算的是北京市中心的两个经纬度之间的距离。
0 条评论