Redis GREORADIUS:包括高度?

问题描述 投票:1回答:1

我希望使用Redis的GEORADIUS命令。

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

我如何在Redis中实现这一目标?

database search redis geolocation altitude
1个回答
4
投票

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

Redis的地理空间索引本身不包含高度搜索,但您可以将该属性存储在其自己的排序集中作为分数。然后,您可以对海拔高度进行范围搜索(ZRANGEBYSCORE),并将结果与​​半径查询中的结果进行交叉(ZINTER)(提示:使用临时密钥进行STORE结果)。

作为参考,这是我使用xyzsets in geo.lua的方法。

© www.soinside.com 2019 - 2024. All rights reserved.