php计算两个经纬度之间的距离

/**
 *计算地球表面2点之间的球面距离,返回米数
 * @param $lat1
 * @param $lon1
 * @param $lat2
 * @param $lon2
 * @param  $radius
 * @return float
 */
function distance($lat1, $lon1, $lat2, $lon2, $radius = 6378140)
{
    $rad = floatval(M_PI / 180.0);
    $lat1 = floatval($lat1) * $rad;
    $lon1 = floatval($lon1) * $rad;
    $lat2 = floatval($lat2) * $rad;
    $lon2 = floatval($lon2) * $rad;
    $theta = $lon2 - $lon1;
    $dist = acos(sin($lat1) * sin($lat2) +
        cos($lat1) * cos($lat2) * cos($theta)
    );
    if ($dist < 0) {
        $dist += M_PI;
    }
    $dist = ceil($dist * $radius);
    return $dist;
}

 

你可能感兴趣的:(PHP)