|
|
|
|
@ -25,13 +25,19 @@ class HospitalController extends Controller
|
|
|
|
|
$id = $request->post('id');
|
|
|
|
|
$latitude = $request->post('latitude');
|
|
|
|
|
$longitude = $request->post('longitude');
|
|
|
|
|
$info = Hospital::select('id', 'address', 'logo', 'name', 'phone', 'latitude', 'longitude', DB::raw('(ROUND(6371 * acos(cos(radians(' . $latitude . ')) * cos(radians(latitude)) * cos(radians(longitude) - radians(' . $longitude . ')) + sin(radians(' . $latitude . ')) * sin(radians(latitude))), 2)) AS distance'))
|
|
|
|
|
$info = Hospital::select('id', 'address', 'logo', 'name', 'phone', 'latitude', 'longitude',
|
|
|
|
|
DB::raw('(ROUND(6371 * acos(cos(radians(?)) * cos(radians(latitude)) * cos(radians(longitude)
|
|
|
|
|
- radians(?)) + sin(radians(?)) * sin(radians(latitude))), 2)) AS distance'))
|
|
|
|
|
->setBindings([$latitude, $longitude, $latitude])
|
|
|
|
|
->where('id', $id)
|
|
|
|
|
->where('status', 1)
|
|
|
|
|
->where('del', 2)
|
|
|
|
|
->first();
|
|
|
|
|
if (!$info) {
|
|
|
|
|
$info = Hospital::select('id', 'address', 'logo', 'name', 'phone', 'latitude', 'longitude', DB::raw('(ROUND(6371 * acos(cos(radians(' . $latitude . ')) * cos(radians(latitude)) * cos(radians(longitude) - radians(' . $longitude . ')) + sin(radians(' . $latitude . ')) * sin(radians(latitude))), 2)) AS distance'))
|
|
|
|
|
$info = Hospital::select('id', 'address', 'logo', 'name', 'phone', 'latitude', 'longitude',
|
|
|
|
|
DB::raw('(ROUND(6371 * acos(cos(radians(?)) * cos(radians(latitude)) * cos(radians(longitude)
|
|
|
|
|
- radians(?)) + sin(radians(?)) * sin(radians(latitude))), 2)) AS distance'))
|
|
|
|
|
->setBindings([$latitude, $longitude, $latitude])
|
|
|
|
|
->where('dev', 2)
|
|
|
|
|
->where('status', 1)
|
|
|
|
|
->where('del', 2)
|
|
|
|
|
@ -58,7 +64,8 @@ class HospitalController extends Controller
|
|
|
|
|
Login::user();
|
|
|
|
|
$latitude = $request->post('latitude');
|
|
|
|
|
$longitude = $request->post('longitude');
|
|
|
|
|
$query = Hospital::select('id', 'address', 'logo', 'name', 'phone', DB::raw('(ROUND(6371 * acos(cos(radians(' . $latitude . ')) * cos(radians(latitude)) * cos(radians(longitude) - radians(' . $longitude . ')) + sin(radians(' . $latitude . ')) * sin(radians(latitude))), 2)) AS distance'))
|
|
|
|
|
$query = Hospital::select('id', 'address', 'logo', 'name', 'phone', DB::raw('(ROUND(6371 * acos(cos(radians(?)) * cos(radians(latitude)) * cos(radians(longitude) - radians(?)) + sin(radians(?)) * sin(radians(latitude))), 2)) AS distance'))
|
|
|
|
|
->setBindings([$latitude, $longitude, $latitude])
|
|
|
|
|
->where('status', 1)->where('del', 2);
|
|
|
|
|
if (Login::$info->dev != 1) $query->where('dev', 2);
|
|
|
|
|
$list = $query->orderBy('distance', 'asc')->get();
|
|
|
|
|
|