Change Distance Calculation to cosinus

This commit is contained in:
R
2022-09-17 10:02:37 +07:00
parent e4fba1f51a
commit b25dcf02dc

View File

@@ -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');
} }