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

8wigbo56  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(811)

最近我使用geohash将成对的geo坐标散列成一个散列值并存储在mysql中。现在我想找到最近的散列给定另一个散列。我注意到mysql提供了btree结构,通过在sql查询中使用“like”命令来查找一系列最近的散列。
问题是,我怎么能找到最近的一个而不是给出一个范围,因为有时我不知道范围。
有人能给我一个提示吗?
真的很感激。

iecba09b

iecba09b1#

四边形(或geohash?)可逆地将纬度+经度转换为单个数字。但是用它来“寻找最近的”会变得复杂和混乱。阅读有关z排序的内容。据我所知,您需要使用 ORDER BY 以及 LIMIT ; UNION 把结果放在一起;然后看看哪个最好。
但是,如果尝试没有找到足够的物品,就很难知道该怎么办。 SPATIAL 索引提供了一种更直接的方法。
下面是一种有效地为大型数据集“查找最近的”的技术。

相关问题