2013-08-13 3 views
0

В shapelib я отметил, что достаточное количество кода предназначено для обработки Quadtree Shapefile. Например, инструмент shptreedump (в исходном коде shapelib).Shapefile quadtree в shapelib

warmerda @ GDAL [207]% shptreedump -maxdepth 6 eg_data/polygon.shp ( SHPTreeNode Мин = (471127.19,4751545.00) Макс = (489292.31,4765610.50) Формы (0): (SHPTreeNode Мин = (471127.19,4751545.00) Max = (481118.01,4765610.50) Shapes (0): (SHPTreeNode Min = (471127.19,4751545.00) Max = (481118.01,4759281.03) Shapes (0): (SHPTreeNode Min = (471127.19,4751545.00) Макс = (476622,14,4759281,03) Sh приматы (0): (SHPTreeNode Min = (471127.19,4751545.00) Max = (476622.14,4755799.81) Shapes (0): (SHPTreeNode Min = (471127.19,4751545.00) Max = (474149.41,4755799.81) Формы (6): 395 397 402 404 405 422 ) (SHPTreeNode Min = (473599.92,4751545.00) Max = (476622.14,4755799.81) фигуры (10): 392 394 403 413 414 417 426 433 434 447 ) ) ...

Я думаю, что я хорошо знаком с форматом шейп-файла после прочтения ESRI Shapefile Technical Description. Но я не вижу никакой внутренней структуры дерева. Итак, мой вопрос: для чего нужен quadtree shapefile? И если это возможно, с объяснением реализации quadtree шейп-файла.

Спасибо.

ответ

2

Если вы посмотрите в конце вашего цитируемого текста, прямо там, где вы остановились, много закрывающей скобкой ... хороший старый Лисп кодирования стиль:

(R (st1 (ST21()()() ())()()()) (st2) (st3) (st4))

R обозначает корень дерева, тогда у вас есть четыре поддерева в() плюс фактические данные st1, я обозначил 4 поддеревья по st1 ... st4. st21 обозначает первое поддерево на втором уровне. Поддеревья могут быть помечены или если любой из них пуст, обозначенный символом(). Его легко разобрать и распечатать.

+0

+1 Благодарим вас, это помогает, хотя оно напрямую не касается моего вопроса. – lulyon

+0

Обозначение lisp объясняет структуру дерева. Квадратура представляет собой пространственное разложение 2d-пространства в области, идентифицированные двумя противоположными углами, чтобы вы могли быстро найти точку. Это обобщение двоичного дерева, которое предназначено для поиска «чисел» в 1d-пространстве. Википедия станет хорошим началом для деталей реализации. – user1666959