如何在mysql中找到最近的geohash?

时间:2018-09-07 20:32:08

标签: mysql search indexing geohashing

最近,我正在使用GeoHash将配对的地理坐标散列为散列值并将其存储在MySQL中。现在,我想根据其他哈希找到最接近的哈希。我注意到,MYSQL通过在SQL查询中使用命令“ like”来提供BTree结构来查找最接近的散列范围。

问题是,由于有时我不知道范围,我怎么能找到最接近的范围而不是给出范围。

有人可以给我一个提示吗?

真的很感激。

1 个答案:

答案 0 :(得分:1)

QuadTile(或GeoHash?)可逆地将纬度+经度转换为一个数字。但是使用它“找到最近的”变得复杂而混乱。了解有关Z顺序的信息。据我了解,您需要使用ORDER BYLIMIT运行4个查询; UNION个结果在一起;然后检查哪个是最好的。

但是,如果尝试找不到足够的项目,要知道该怎么办就很棘手。

SPATIAL索引提供了一种更直接的方法。

Here是一项针对大型数据集有效“查找最近”的技术。