最近做一个项目需要根据本地数据计算周边点距离中间点的距离,网上找了些现成代码,做了点优化,在此记录

/** 
* 根据两点间的经纬度计算距离 
* @param $lng1 
* @param $lat1 
* @param $lng2 
* @param $lat2 
* @return int 
*/
function getDistance($lng1, $lat1, $lng2, $lat2){    
    //将角度转为狐度
    //deg2rad函数需要参数float类型,由于PHP弱类型语言,添加此强制转换    
    $radLat1 = deg2rad((float)$lat1);//deg2rad()函数将角度转换为弧度
    $radLat2 = deg2rad((float)$lat2);    
    $radLng1 = deg2rad((float)$lng1);    
    $radLng2 = deg2rad((float)$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;
}

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿
立即
联系

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部