Redis GREORADIUS:包括高度?

Redis GREORADIUS: include altitude?

我希望使用 Redis 的 GEORADIUS 命令。

但是,该命令只在给定经纬度的二维圆范围内搜索。我还需要用高度搜索,从而在三维球体范围内找到结果。

我如何在 Redis 中实现这一点?

我相信您实际上想要做的是在 3D 圆柱体(或者如果考虑到地球的球形特性,则为某种圆锥体)内搜索。

海拔搜索本身并不包含在 Redis 的地理空间索引中,但您可以将其 属性 存储在其自己的 Sorted Set 中作为分数。然后,您可以使用半径查询的结果执行范围搜索 (ZRANGEBYSCORE) on the altitude and intersect (ZINTER)(提示:对 STORE 结果使用临时键)。

供您参考,这是我在 xyzsets in geo.lua 中采用的方法。