所以我试图在一定距离内找到离另一个特定点最近的点,为此我使用了半正弦公式。原始查询本身是:
SELECT id,
( 3959 * acos( cos( radians(input_lat) ) * cos( radians( map_loc_lat ) ) * cos( radians( map_loc_long ) - radians(input_long) ) + sin( radians(input_lat) ) * sin( radians( map_loc_lat ) ) ) )
AS distance FROM posts HAVING distance < 25 ORDER BY distance LIMIT 0 , 20;
我希望我的中心搜索点从哪里开始input_lat
,并且是我的预定义坐标,并且是' 点。input_long
map_loc_lat
map_loc_long
posts
我正在尝试使用 Eloquent 的selectRaw()
方法来完成部分繁重的工作,如下所示:
$query->selectRaw('id, ( 6371 * acos( cos( radians(?) ) * cos( radians( map_loc_lat ) )
* cos( radians( ? ) - radians(?) ) + sin( radians(?) )
* sin( radians( map_loc_lat ) ) ) ) AS distance', )
但是我对如何使用 Eloquent 指定问号来表示我的输入纬度和经度感到困惑,另外我将如何继续链接我的 order by 子句和我的限制?