При расчете Z-порядка, как реализовать BIGMIN и LITMAX для более чем двух измерений?

Я пишу UB Tree для развлечения, используя Z Order Curve. В настоящее время он способен хранить точки в любом количестве измерений, и при запросе он выполняет наивный поиск между двумя индексами Z, фильтруя и отбрасывая любые ложные срабатывания. Я хотел бы реализовать BIGMIN а также LITMAX чтобы свести к минимуму количество ложных срабатываний, которые оно проходит, но я не могу найти никакой информации о том, как реализовать их таким образом, чтобы не ограничивать мое дерево хранением двумерных данных. Например, и этот технический документ, и этот пост в блоге описывают их реализацию в терминах, тесно связанных с работой с 2D-значениями.

Есть ли независимый от размерности способ реализации этой функциональности?

1 ответ

Для измерения 2 вы можете рассматривать кривую z как число с основанием 4 (quadkey). ИМО, когда вы сортируете четырехугольник слева направо, он похож на litmin и bigmin. Для n-измерения относитесь к нему как к числу base-n.

Другие вопросы по тегам