我希望使用Redis'GEORADIUS
命令。
但是,此命令仅在给定经度和纬度周围的二维圆的范围内搜索。我还需要用海拔搜索,从而在三维球体的范围内找到结果。
我如何在Redis中实现这一目标?
答案 0 :(得分:4)
我相信你真正想要做的就是在3D圆柱体内进行搜索(或者如果你考虑到地球的球形性质,可以搜索某种圆锥体)。
海拔搜索并不包含在Redis'中。地理空间索引,但您可以将该属性存储在其自己的排序集中作为分数。然后,您可以对海拔高度执行范围搜索(ZRANGEBYSCORE
)并将结果与半径查询中的结果进行交叉(ZINTER
(提示:使用临时密钥到STORE
结果)
供您参考,这是我对xyzsets in geo.lua采用的方法。