用鼠标与指尖
让互联网更加有趣

PHP根据经纬度计算两点距离与方圆范围方法

平常我们做项目,经常遇到根据用户当前位置来计算出与用户之间的距离,或者给用户展示方圆一公里的店铺商家之类的功能。所以在此记录一下方法。

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

/**
 * 求两个已知经纬度之间的距离,单位为米
 * 
 * @param lng1 $ ,lng2 经度
 * @param lat1 $ ,lat2 纬度
 * @return float 距离,单位米
 * @author www.Alixixi.com 
 */
function getdistance($lng1, $lat1, $lng2, $lat2) {
    // 将角度转为狐度
    $radLat1 = deg2rad($lat1); //deg2rad()函数将角度转换为弧度
    $radLat2 = deg2rad($lat2);
    $radLng1 = deg2rad($lng1);
    $radLng2 = deg2rad($lng2);
    $a = $radLat1 - $radLat2;
    $b = $radLng1 - $radLng2;
    $s = 2 * asin(sqrt(pow(sin($a / 2), 2) + cos($radLat1) * cos($radLat2) * pow(sin($b / 2), 2))) * 6378.137 * 1000;
    return $s;
}

根据经纬度获取指定方圆距离的四个点

/**
* 获取指定方圆距离的四个点
* param lng float 经度
* param lat float 纬度
* param distance float 该点所在圆的半径,该圆与此正方形内切,默认值为单位米
* return array 正方形的四个点的经纬度坐标
*/
function getSquarePoint($lng, $lat,$distance)
{
    $PI = 3.14159265;
    $longitude = $lng;
    $latitude = $lat;

    $degree = (24901*1609)/360.0;
    $raidusMile = $distance;
支付宝扫码打赏 微信扫码打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者

未经允许不得转载:小伟博客 » PHP根据经纬度计算两点距离与方圆范围方法

分享到:更多 ()

评论 抢沙发

小伟博客 · 给你感兴趣的内容

联系我们官方交流群