这篇文章解释了如何计算bigmin和litmax (大最小和小最大值)。
我很难理解步骤4的措辞,看它将如何转换为伪代码、C或python。
第四步 我们知道的水平除法,我们需要计算出最接近yn分界线的纬度值。取最小值和最大值中最重要的一点,直到它们最初的不同之处,我们称它为y1.m,我们知道,除法线上方的纬度值将是二进制编码y1.m 0111.和y1.m 1000.这就是我们对LitMax和BigMin的纬度值。 由于我们的例子中最重要的一点是y4,我们的LitMax和BigMin纬度值等于0111和1000。 在一个垂直的除法中,我们把它反转到x位和经度。
我对从coord转换z顺序索引没有问题,反之亦然。
我只是对计算大数和最大值感兴趣,因为它们可以大大加快速度。我已经搜索过这些特定位掩码操作的详细信息(这里的答案如何在范围搜索中使用Morton阶(z阶曲线)?并没有真正涵盖它,链接的dynamodb文章也没有)。
发布于 2020-08-06 13:33:33
看一看原始文章http://hermanntropf.de/media/multidimensionalrangequery.pdf中的76页决策表,在美国专利US7321890B2中,对Z索引的Bigmin计算背后的思想进行了更详细的描述,即使用希尔伯特顺序代替Z顺序。参见第2节:“Z索引的BIGMIN解决方案”,其中包括简化描述,因为专利中的许多想法与希尔伯特索引的申请是相同的。https://patents.google.com/patent/US7321890B2/en?assignee=hermann+tropf&oq=hermann+tropf。一旦实现了Bigmin,只需查看原始文章中的Litmax决策表即可。我希望这能帮上忙。
https://stackoverflow.com/questions/59806026
复制相似问题