Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用经度和纬度计算一家餐厅与该餐厅附近的10名司机之间的距离?_Php_Laravel_Google Maps - Fatal编程技术网

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();