如何计算 geohash 上的相邻网格。需要算法
How to calculate the neighbouring grids on geohash. Algorithms required
您好,我正在使用一个实现了 geohash 的数据库
因此,如上所示,随着缩放级别下降(6 个缩放级别),更多 abcd
被插入到每个网格中。我将它们表示为刚性网格;但是,所有网格的中心点都不同。因此,例如,从 a
到 b
的距离与从 a
到 c
的距离不同。
如果是刚性网格,我可以只得到最近的四个相邻网格;但是,我不能这样做,因为距离不同并且最近的邻居不一定是正交的。我从数据库中获得的唯一信息是每个网格的中心点和 geohash 键,例如aa
、ab
等..
如何找到每个缩放级别的每个网格正北、西、东和南的网格? (有 6 个缩放级别)
如您所见,例如,以 d
结尾的单元格有一个具有相同前缀但以 b
以北结尾的单元格。这允许您设置映射 table.
在某些情况下,例如 cb
向北,您最终会到达 ad
,诀窍是识别从 *b
向北您需要查看之前的字符(在本例中为 c
),从该字符 (a
) 向北并添加该列 (d
) 的 south-most 边缘。
简而言之,就是实现一些映射 tables 和一些处理边缘的逻辑。
您好,我正在使用一个实现了 geohash 的数据库
因此,如上所示,随着缩放级别下降(6 个缩放级别),更多 abcd
被插入到每个网格中。我将它们表示为刚性网格;但是,所有网格的中心点都不同。因此,例如,从 a
到 b
的距离与从 a
到 c
的距离不同。
如果是刚性网格,我可以只得到最近的四个相邻网格;但是,我不能这样做,因为距离不同并且最近的邻居不一定是正交的。我从数据库中获得的唯一信息是每个网格的中心点和 geohash 键,例如aa
、ab
等..
如何找到每个缩放级别的每个网格正北、西、东和南的网格? (有 6 个缩放级别)
如您所见,例如,以 d
结尾的单元格有一个具有相同前缀但以 b
以北结尾的单元格。这允许您设置映射 table.
在某些情况下,例如 cb
向北,您最终会到达 ad
,诀窍是识别从 *b
向北您需要查看之前的字符(在本例中为 c
),从该字符 (a
) 向北并添加该列 (d
) 的 south-most 边缘。
简而言之,就是实现一些映射 tables 和一些处理边缘的逻辑。