Change Distance Calculation to cosinus
This commit is contained in:
@@ -31,10 +31,11 @@ class HospitalController extends Controller
|
|||||||
});
|
});
|
||||||
$hospitals->select([
|
$hospitals->select([
|
||||||
"organizations.*",
|
"organizations.*",
|
||||||
DB::raw("ST_Distance_Sphere(point(addresses.lng,addresses.lat), point(".$request->lng.",".$request->lat.")) /1000 as distance_km")
|
// DB::raw("ST_Distance_Sphere(point(addresses.lng,addresses.lat), point(".$request->lng.",".$request->lat.")) /1000 as distance_km"),
|
||||||
|
DB::raw("6371 * acos (cos ( radians($request->lat) ) * cos( radians( addresses.lat ) ) * cos( radians( addresses.lng ) - radians($request->lng) ) + sin ( radians($request->lat) ) * sin( radians( addresses.lat ) )) as distance_km")
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$hospitals->orderBy('distance_km', 'desc');
|
$hospitals->orderBy('distance_km', 'asc');
|
||||||
} else {
|
} else {
|
||||||
$hospitals->orderBy('organizations.name', 'asc');
|
$hospitals->orderBy('organizations.name', 'asc');
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user