我有一个基于这个算法的希尔伯特曲线指数。我取两到四个值(纬度、经度、unix 格式的时间和一个 id 代码)并创建一维希尔伯特曲线。
我正在寻找一种使用此数据创建边界框查询的方法(即“查找此矩形内的所有 ID)。
我正在寻找一种无需将一维希尔伯特码解码回其组成部分的方法。使用 Morton/Z 阶曲线似乎更容易做到这一点,但我想知道局部性保留。
我的问题是:如果我创建了一个 2d 希尔伯特曲线范围(即我将框的范围转换为希尔伯特曲线,因此 x1y1-> hilbert value1 和 x2y2-> hilbertvalue2)是否会相应的 2d hilbert 值的所有值都落在它们的范围内?
例如,如果我将 (1,2) 和 (20,30) 转换为 Hilbert 值,然后搜索 hilbertvalue1 和 hilbertvalue2 之间的所有值,我得到的所有值是否都在 (1,2) 和 (20, 30) 之内,还是我必须执行额外的转换?
当您有超过 2 个维度时,另一个问题是制作一个范围。我有能力进出希尔伯特曲线,但我怎样才能确保即使是 4d 值的纬度和经度也在同一个矩形/边界框中?
谢谢。