【PHP】根据两地经纬度计算距离

最近做一个H5活动的项目,有个要求是必须现场玩家才能参与,所以就需要计算玩家位置和活动地点的距离来判断是否在活动现场。

以下是写的一个根据经纬度计算两地距离的方法

 1 function getDistance($lng1, $lat1, $lng2, $lat2) {
 2     $EARTH_RADIUS = 6378.137;
 3     $radLat1 = rad($lat1);
 4     $radLat2 = rad($lat2);
 5     $a = $radLat1 - $radLat2;
 6     $b = rad($lng1) - rad($lng2);
 7     $s = 2 * asin(sqrt(pow(sin($a / 2), 2) + cos($radLat1) * cos($radLat2) * pow(sin($b / 2), 2)));
 8     $s = $s * $EARTH_RADIUS;
 9     if ($s < 1) {
10         $s = round($s * 1000);
11         $s.='m';
12     } else {
13         $s = round($s, 2);
14         $s.='km';
15     }
16     return $s;
17 }
18 function rad($d) {
19     return $d * 3.1415926535898 / 180.0;
20 }

 

posted @ 2017-12-07 11:07  李文和  阅读(559)  评论(0编辑  收藏  举报