В этой статье объясняется, как вычислять bigmin и litmax (большой минимум и маленький максимум).
Мне трудно понять формулировку шага 4, чтобы увидеть, как он будет переводиться псевдокод, C или python.
Шаг 4
Горизонтальное деление, которое мы знаем, нам нужно вычислить значение широты, ближайшее к линии деления yn. Возьмем старшие и минимальные биты, начиная с того места, где они впервые отличаются, yn, и назовем его y [1..m]. Мы знаем, что значение широты чуть выше линии деления будет иметь двоичный код y [1..m ] 0111 ... и y [1..m] 1000 ..., что соответствует нашему значению Latitude для LitMax и BigMin.
Поскольку в нашем примере старшим значащим битом был y4, наш Значения LitMax и BigMin Latitude равны 0111 и 1000.
В вертикальном делении мы просто обращаем это к битам x и долготе.
У меня нет проблем с переводом индекса z порядка из координат и наоборот.
Мне просто интересно вычислить bigmin и litmax, поскольку они позволяют увеличить большую скорость. Я искал и не могу найти подробные сведения об этих конкретных операциях с битовой маской (ответ здесь Как использовать порядок Мортона (кривая z порядка) при поиске диапазона? на самом деле не охватывает его, и ни делает связанную статью DynamodB).