在开发某些项目会遇到这样的需求:
一.提供两个经纬度计算出两个经纬度的距离.
二.提供当前位置的经纬度从数据库中取出一定范围内的数据
先说一下第一个需求, 在美团或者饿了么点外卖就经常见到, 比如点餐列表显示自己与店家相隔距离.
现实方法: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')