根据传统方式经纬度计算两点之间的距离
传统方式:
<?php
function haversineDistance($lat1, $lon1, $lat2, $lon2) {
// 将经纬度转换为弧度
$lat1 = deg2rad($lat1);
$lon1 = deg2rad($lon1);
$lat2 = deg2rad($lat2);
$lon2 = deg2rad($lon2);
// 计算经纬度差值
$dlat = $lat2 - $lat1;
$dlon = $lon2 - $lon1;
// 使用Haversine公式计算距离
$a = sin($dlat / 2) ** 2 + cos($lat1) * cos($lat2) * sin($dlon / 2) ** 2;
$c = 2 * asin(sqrt($a));
$radius = 6371; // 地球半径,单位为公里
// 计算实际距离
$distance = $radius * $c;
return $distance;
}
// 例子:计算两个经纬度之间的距离
$lat1 = 37.7749; // 用户1的纬度
$lon1 = -122.4194; // 用户1的经度
$lat2 = 34.0522; // 用户2的纬度
$lon2 = -118.2437; // 用户2的经度
$distance = haversineDistance($lat1, $lon1, $lat2, $lon2);
echo "两个用户之间的距离为:{$distance}公里";
?>
页:
[1]