【发布时间】:2017-12-14 01:57:42
【问题描述】:
我希望使用 Redis 的 GEORADIUS 命令。
但是,此命令仅在给定经度和纬度周围的二维圆范围内搜索。我还需要使用高度进行搜索,从而找到三维球体范围内的结果。
如何在 Redis 中实现这一点?
【问题讨论】:
标签: database search redis geolocation altitude
我希望使用 Redis 的 GEORADIUS 命令。
但是,此命令仅在给定经度和纬度周围的二维圆范围内搜索。我还需要使用高度进行搜索,从而找到三维球体范围内的结果。
如何在 Redis 中实现这一点?
【问题讨论】:
标签: database search redis geolocation altitude
我相信您实际尝试做的是在 3D 圆柱体(或某种圆锥体,如果考虑到地球的球形性质的话)内搜索。
Redis 的地理空间索引本身不包含高度搜索,但您可以将该属性存储在其自己的排序集中作为分数。然后,您可以对高度执行范围搜索 (ZRANGEBYSCORE),并将结果与半径查询的结果相交 (ZINTER)(提示:使用 STORE 结果的临时键)。
供您参考,这是我对xyzsets in geo.lua 采取的方法。
【讨论】: