0

shapelib中,我注意到相当多的代码用于处理 Shapefile 四叉树。例如,工具 shptreedump(在 shapelib 源代码中)。

warmerda@gdal[207]% shptreedump -maxdepth 6 eg_data/polygon.shp (SHPTreeNode Min = (471127.19,4751545.00) Max = (489292.31,4765610.50) Shapes(0): (SHPTreeNode Min = (471127.19,4751545.00) Max = (4811545.00)18.11 ,4765610.50) 形状 (0): ( SHPTreeNode 最小值 = (471127.19,4751545.00) 最大值 = (481118.01,4759281.03) 形状 (0): ( SHPTreeNode 最小值 = (471127.19,4751545.00) 最大值 = (476622.14,475921) 形状。 ( SHPTreeNode 最小值 = (471127.19,4751545.00) 最大值 = (476622.14,4755799.81) 形状 (0): ( SHPTreeNode 最小值 = (471127.19,4751545.00) 最大值 = (474149.41,4755799.81) 形状 (6): 395 4054 395 4097 4 SHPTreeNode 最小值 = (473599.92,4751545.00) 最大值 = (476622.14,4755799.81) 形状(10): 392 394 403 413 414 417 426 433 434 447 ) ) ...

在阅读了ESRI Shapefile Technical Description之后,我想我已经对 shapefile 格式非常熟悉了。但我看不到任何内部树结构本身。所以我的问题是,shapefile 四叉树有什么用?如果可能的话,解释 shapefile 四叉树的实现。

谢谢。

4

1 回答 1

2

如果您查看引用文本的末尾,就在您停止的地方,很多右括号...良好的旧 Lisp 样式编码:

(R (st1 (st21 () () () ()) () () ()) (st2) (st3) (st4))

R代表树的根,那么()中有四个子树加上实际数据st1,我用st1...st4表示4个子树。st21 代表第二层的第一个子树。子树可以被标记,或者如果它们中的任何一个为空,则用 () 表示。它易于解析和打印。

于 2013-08-13T07:34:37.753 回答