提问者:小点点

中心点半径内的MySQL点空间索引查询


我看到了许多从获取最近行的解决方案,以便将其转换为x()y(),并进行距离的触发计算。。。 据我所知,这似乎没有利用空间索引?

如何利用空间索引(在最常见的意义上,返回其空间在中心半径范围内的行)?

换句话说,如何得到这样的结果-其中LATLNG是存储为每行点的最新lng位置,CenterPoint是震中

伪代码查询:从geotable WHERE选择*距离(LatLng,CenterPoint)<; 10


共1个答案

匿名用户

可以使用st_distance_sphere

SELECT * 
FROM geotable 
WHERE st_distance_sphere(POINT(-82.337036, 29.645095 ), POINT(`longitude`, `latitude` ))/1000  < 10

这里您可以看到一个工作示例