【发布时间】:2017-08-05 13:31:50
【问题描述】:
我有一个表格,其中有一个 POINT 列,其中包含各个位置的纬度和经度。
然后我在浏览器中也有一个来自地理位置的用户位置。
我需要做的是从表中查找所有记录,其中POINT 值在 10 公里半径(或 X 公里半径)内,按距离排序,距离最近的在前。
我的表在POINT 列上有一个SPATIAL 索引。
【问题讨论】:
-
您无法使用索引在圆内找到点 - 但如果您为索引查找定义边界框,然后根据与中心的距离进行过滤,您将获得快速的结果。跨度>
-
这里给出的解决方案不适用于大型数据集。如果这是一个问题,请参阅mysql.rjweb.org/doc.php/find_nearest_in_mysql
标签: mysql geospatial spatial