计算两个经纬度之间的距离,可以用于查看用户与商家之间的距离

查到的一个方法,还不错,所以记录下来,

数据库中存储了商家的经纬度

前端用接口获取到用户的经纬度

然后调用如下方法,就可以计算出两个之间的距离了,单位:m


/**
* 计算两个经纬度之间的距离
*/

public function getDistance($u_la, $u_lon, $s_la, $s_lon)
{
// 将角度转为狐度
$rad_u_la = deg2rad($u_la); //deg2rad()函数将角度转换为弧度
$rad_s_la = deg2rad($s_la);
$rad_u_lon = deg2rad($u_lon);
$rad_s_lon = deg2rad($s_lon);
$a = $rad_u_la - $rad_s_la;
$b = $rad_u_lon - $rad_s_lon;
$s = 2 * asin(sqrt(pow(sin($a / 2), 2) + cos($rad_u_la) * cos($rad_s_la) * pow(sin($b / 2), 2))) * 6378.137 * 1000;
return $s;

}


http://www.cnblogs.com/cqingt/p/5466648.html

可以参考:http://www.tcao.net/article/71.html  这位博主写的不错

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值