php中getdistance函数_PHP使用经纬度获取两个位置的距离及范围查询

在开发某些项目会遇到这样的需求:

一.提供两个经纬度计算出两个经纬度的距离.

二.提供当前位置的经纬度从数据库中取出一定范围内的数据

先说一下第一个需求, 在美团或者饿了么点外卖就经常见到, 比如点餐列表显示自己与店家相隔距离.

现实方法:function get_distance_by_coords($start_lat, $start_end, $end_lat, $end_lng)

{

// 将角度转为狐度 deg2rad() 函数将角度转换为弧度

$rad_start_lat = deg2rad($start_lat);

$rad_end_lat = deg2rad($end_lat);

$rad_start_lng = deg2rad($start_end);

$rad_end_lng = deg2rad($end_lng);

$a_coords = $rad_start_lat - $rad_end_lat;

$b_coords = $rad_start_lng - $rad_end_lng;

$distance = 2 * asin(sqrt(pow(sin($a_coords / 2),2) + cos($rad_start_lat) * cos($rad_end_lat)

* pow(sin($b_coords / 2),2))) * 6378.137 * 1000;

return $distance;

}

var_dump(get_distance_by_coords('23.11349200900413', '113.36568827514647', '23.115386579166856', '113.3728980529785')

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值