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

本文介绍了一种在H5活动中通过计算用户与活动地点之间的经纬度距离来判断用户是否在现场的方法。提供了具体的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 }

 

转载于:https://www.cnblogs.com/BearLee/p/7998134.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值