Php 如何使用经度和纬度计算一家餐厅与该餐厅附近的10名司机之间的距离?
我有两张桌子:Php 如何使用经度和纬度计算一家餐厅与该餐厅附近的10名司机之间的距离?,php,laravel,google-maps,Php,Laravel,Google Maps,我有两张桌子: ------ --------- places drivers ------ --------- longitude longitude latitude latitude 我想做什么 我想计算地点和司机之间的距离,以找到至少10名离地点较近的司机,并向他们发送通知 我的问题 我的问题是,我不知道如何计算距离的地
------ ---------
places drivers
------ ---------
longitude longitude
latitude latitude
我想做什么
我想计算地点和司机之间的距离,以找到至少10名离地点较近的司机,并向他们发送通知
我的问题
我的问题是,我不知道如何计算距离的地方经纬度,并找到10名司机经纬度谁是附近
我的代码:
$order = Order::find($id);
$drivers = Driver::where('id','!=',$driver->id)->get();
$place = Place::find('id',$order->place_id);
$place_longitude = $place->longitude;
$place_latitude = $place->latitude;
foreach ($drivers as $driver) {
if ($driver->availability === 1 )
{
$driver_longitude = $driver->longitude;
$driver_latitude = $driver->latitude;
$uuid = $driver->uniqid;
NotificationHelper::orderNotificationForDriver($order->id,$uuid);
}
}
谢谢兄弟。你能告诉我这个号码是什么吗:6371?不客气。使用它,数学就是深度:)6371是地球的半径这对你有帮助吗?谢谢兄弟。你能告诉我这个号码是什么吗:6371?不客气。用它,数学就是深度:)6371是地球的半径,这对你们有帮助吗?
$drivers = Driver::where('id','!=',$driver->id)->selectRaw ( "(6371 * acos( cos( radians('$place_latitude') ) * cos( radians(latitude) ) * cos( radians(longitude) - radians('$place_longitude') ) + sin( radians('$place_latitude') ) * sin( radians(latitude) ) ) ) AS distance" )->orderBy('distance')->get();