php 计算两个坐标(经度,纬度)之间距离的功能代码

2021年1月17日08:49:02 发表评论 134 views

php计算两个坐标(经度,纬度)之间的距离

/**
 * 计算两个坐标(经度,纬度)之间的距离
 *
 * @param 
 * @arrange (512.笔记) jb51.cc
 **/
function distance($lat1,$lng1,$lat2,$lng2,$miles = true)
{
 $pi80 = M_PI / 180;
 $lat1 *= $pi80;
 $lng1 *= $pi80;
 $lat2 *= $pi80;
 $lng2 *= $pi80;
 
 $r = 6372.797; // mean radius of Earth in km
 $dlat = $lat2 - $lat1;
 $dlng = $lng2 - $lng1;
 $a = sin($dlat / 2) * sin($dlat / 2) + cos($lat1) * cos($lat2) * sin($dlng / 2) * sin($dlng / 2);
 $c = 2 * atan2(sqrt($a),sqrt(1 - $a));
 $km = $r * $c;
 
 return ($miles ? ($km * 0.621371192) : $km);
}

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: