2016-05-04 22 views
1
RTreeDistWithin(x Double precision , y Double precision , radius Double precision) 

Эта функция извлекает из пространственного индекса R * Tree любую сущность, MBR которой пересекает квадрат, описанный на данном круге. Есть ли какой-либо аналог для 3-х и более размерных данных?SpatiaLite: RTreeDistWithin для многомерных данных

ответ

0

Существует три или n-мерная реализация любой связанной с R * Tree функции в SpatiaLite. По the documentation:

(...) R * Дерево определяет древовидную структуру, основанную на прямоугольники (в R в R * Дерево стоит ровно на прямоугольник).

В общем, пространственные базы данных и пространственные индексы предназначены для управления пространственными данными (понимание пространственных данных как географических данных), поэтому интересными координатами являются X и Y (или долгота/широта). Z (или высота) гораздо менее важна и не учитывается при работе с пространственными индексами.

Итак, Spatialite не предназначен для работы с n-мерными данными, и вы не можете определить n-мерные (n> 2) пространственные индексы R * Tree в SpatiaLite. Возможно, вам придется подумать, что вы пытаетесь сделать с SpatiaLite, потому что, возможно, это не правильный инструмент для достижения ваших целей.

Как обходной путь, если вы все еще хотите работать с пространственными базами данных для хранения ваших данных, вы можете представить свои n-мерные данные в терминах его проекции в двумерных плоскостях. Каждая проекция будет храниться в таблице с пространственным индексом (вам понадобятся n-1 проекции для управления n-мерными данными).

+0

Большое спасибо за столь полный ответ! – MyName