php通过经纬度计算距离
发表于:2024-04-23 15:22:04浏览:145次
前言
在PHP中,计算经纬度之间的距离可以使用Haversine公式。Haversine公式是一种简化的计算地球上两点之间距离的方法,适用于短距离计算。该公式的原理是根据点与地球中心的夹角来计算距离。
php代码
if (!function_exists('distance')) {
/**
* 通过经纬度获取距离(米)
* @param $lat1
* @param $lon1
* @param $lat2
* @param $lon2
* @return float
*/
function distance($lat1, $lon1, $lat2, $lon2) {
// 将角度转换为弧度
$degToRad = M_PI / 180;
// 地球平均半径(单位:米)
$earthRadius = 6371000;
// 将经纬度转换为弧度
$lat1 *= $degToRad;
$lon1 *= $degToRad;
$lat2 *= $degToRad;
$lon2 *= $degToRad;
// Haversine公式计算距离
$dLat = ($lat2 - $lat1);
$dLon = ($lon2 - $lon1);
$a = pow(sin($dLat/2), 2) + cos($lat1) * cos($lat2) * pow(sin($dLon/2), 2);
$c = 2 * atan2(sqrt($a), sqrt(1-$a));
$distance = $earthRadius * $c;
return round($distance, 2); // 返回结果保留小数点后两位
}
}
栏目分类全部>