本文解释了如何计算 bigmin 和 litmax(大最小值和小最大值)。
我很难理解第 4 步的措辞,以了解它如何转换为伪代码、C 或 python。
第4步
一个水平分割我们知道我们需要计算最接近yn的分割线的Latitude值。取最小值和最大值的最高有效位,直到它们最初不同的位置 yn,并将其称为 y[1..m] 我们知道在分割线上方的纬度值将被二进制编码为 y[1..m ] 0111... 和 y[1..m] 1000... 转换为 LitMax 和 BigMin 的纬度值。
由于在我们的示例中不同的最重要位是 y4,因此我们的 LitMax 和 BigMin Latitude 值等于 0111 和 1000。
在垂直除法中,我们只需将其反转为 x 位和经度。
我从 coord 转换 z 顺序索引没有问题,反之亦然。
我只是对计算 bigmin 和 litmax 感兴趣,因为它们可以大大加快速度。我已经搜索过,但找不到关于那些特定位掩码操作的详细信息(此处的答案How to use Morton Order(z order curve) in range search?并没有真正涵盖它,链接的 dynamodb 文章也没有) .