根据googlemap的算法,之前已经有JS版了,这个是PHP版。

/**
 * @param $lat1纬度
 * @param $lng1经度
 * @param $lat2纬度
 * @param $lng2经度
 * @return float|int
 * 计算距离(KM)
 */
function GetDistance($lat1, $lng1, $lat2, $lng2)
{
    $EARTH_RADIUS = 6378.137;
    $radLat1 = rad($lat1);
    $radLat2 = rad($lat2);
    $a = $radLat1 - $radLat2;
    $b = rad($lng1) - rad($lng2);
    $s = 2 * asin(sqrt(pow(sin($a / 2), 2) +
            cos($radLat1) * cos($radLat2) * pow(sin($b / 2), 2)));
    $s = $s * $EARTH_RADIUS;
    $s = round($s * 10000) / 10000;
    return $s;
}

/**
 * @param $d
 * @return float
 * 转换弧度
 */
function rad($d)
{
    return $d * pi() / 180.0;
}

本作品由 程小白 创作,采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可,可自由转载、引用但需署名作者且注明文章出处。
原文地址:https://www.chengxiaobai.cn/php/according-to-the-latitude-and-longitude-to-calculate-the-distance-between-the-two-points-php-version.html