Пространственный индекс на основе Z-order curve

Не знаете, где задать вопрос? Задавайте здесь.
Ответить
SLN
Новоприбывший
Сообщения: 5
Зарегистрирован: 02 апр 2015, 09:36
Репутация: 1

Пространственный индекс на основе Z-order curve

Сообщение SLN » 30 апр 2015, 18:20

Здравствуйте, такой вопрос где ни будь есть в открытом доступе примеры использования Z-order (http://en.wikipedia.org/wiki/Z-order_curve) для пространственного индексирования на С/С++/С# или JAVA языках.
Мне понравилась сама идея использовать "пространственную кривую", я реализовал для точек следующим образом взял B+ дерево у которого ключом является значение Z. И пространственный "прямоугольный" запрос выглядит следующим образом есть прямоугольник с координатами X1Y1 (нижний левый), X2Y2(правый верхний) и нужно найти точки которые он охватывает. Я ищу по дереву все точки которые удовлетворяю следующему условию:
Z(X1, Y1) <= Z (X, Y) <= Z(X2, Y2).
И все хорошо работает, нужные точки попадают в запрос, но выяснилась неприятная особенность, Z кривая имеет большие протяжки, и при "удачном" запросе можно прочитать очень много лишнего. Сейчас пробую решать путем "разрезания" запроса на мелкие под запросы, но возможно где то уже решили данную проблему.

trir
Гуру
Сообщения: 5355
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1021
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Пространственный индекс на основе Z-order curve

Сообщение trir » 30 апр 2015, 18:31

А чем R-дерево не устраивает?

SLN
Новоприбывший
Сообщения: 5
Зарегистрирован: 02 апр 2015, 09:36
Репутация: 1

Re: Пространственный индекс на основе Z-order curve

Сообщение SLN » 30 апр 2015, 19:11

trir писал(а):А чем R-дерево не устраивает?
Собственно хочется исследовать алгоритм работы с Z индексом и сравнить с R-деревом. На мой взгляд операции вставки и удаления при использовании Z индекса "оптимальнее", в том плане что эти операции представляют собой "обычные" операции вставки и удаления в B+ дерево без "пространственного контекста", и поскольку сами ключи "ложатся" по порядку и представляют собой 32 разрядное или 64 разрядное в зависимости от разрядности координат число то еще хорошо сжимаются.

Ответить

Вернуться в «Я новичок!»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя