php计算两个经纬度地点之间距离的方法分享

发布时间:2020-11-03编辑:脚本学堂
本文介绍下,用php代码计算两个经纬度地点之间距离的方法,有需要的朋友参考下。

用php计算两个指定的经纬度地点之间的距离,代码:
 

<?php
/**
*求两个已知经纬度之间的距离,单位为米
*@param lng1,lng2 经度
*@param lat1,lat2 纬度
*@return float 距离,单位米
*@edit www.jb200.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;
}
?>

举例,“上海市延安西路2055弄”到“上海市静安寺”的距离:
上海市延安西路2055弄 经纬度:31.2014966,121.40233369999998
上海市静安寺 经纬度:31.22323799999999,121.44552099999998

那么:
 

复制代码 代码示例:
echo getdistance(31.2014966,121.40233369999998,31.22323799999999,121.44552099999998);

结果为:4970.4248747365 ,约4970米,大约10里路。

几乎接近真实的距离了,看来用php计算两个经纬度地点之间的距离,还是靠谱的,呵呵。