我试图获取 10 英里内的数据,我尝试使用 mysql 示例,如下所示:
set @lat=16.7792468;
set @lng=96.1514016;
set @dist = 10;
set @rlon1 = @lon-@dist/abs(cos(radians(@lat))*69);
set @rlon2 = @lon+@dist/abs(cos(radians(@lat))*69);
set @rlat1 = @lat-(@dist/69);
set @rlat2 = @lat+(@dist/69);
我使用此查询从数据库中选择 10 英里内的数据:
select
*
from
restaurants
where
st_within((@rlng1, @rlat1), (@rlng2, @rlat2))
order by
st_distance(@lng, @lat)
limit
10;
但是我收到了这个错误:
ERROR 1241 (21000): Operand should contain 1 column(s)
我不知道出了什么问题或遗漏了什么。有任何建议欢迎^^
最佳答案
不应该是st_within(POINT(@rlng1, @rlat1), POINT(@rlng2, @rlat2))
在 where 子句中?
此外,st_distance需要两个几何对象,但提供了 lat + lng。
关于mysql - St_within 用于获取 10 英里半径 MBR mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59746612/