2. PHP中如何使用Haversine公式来计算两点间的距离?
时间: 2024-09-25 07:05:40 浏览: 34
php计算地图上两点间的距离的类.zip
在PHP中,可以使用Haversine公式来计算地球上两点之间的大圆弧距离,这个公式考虑了地球是一个球体的情况。以下是一个简单的实现:
```php
function distanceInKm($lat1, $lon1, $lat2, $lon2) {
const earthRadius = 6371; // 地球平均半径,单位为公里
$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));
return $earthRadius * $c;
}
// 使用例子
$distance = distanceInKm(51.5074, -0.1278, 40.7128, -74.0060); // 北京和纽约的距离
echo "两地距离大约是:" . round($distance, 2) . "公里"; // 输出结果
```
这里的参数 `$lat1`, `$lon1`, `$lat2`, 和 `$lon2` 分别代表两个地点的纬度和经度,函数返回的是两点间的距离(单位为公里)。注意Haversine公式计算的是大圆航线距离,并非直线距离。
阅读全文