admin 发表于 2024-1-12 19:34:03

根据传统方式经纬度计算两点之间的距离



传统方式:
<?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]
查看完整版本: 根据传统方式经纬度计算两点之间的距离