RTREE的历史

“Rtree”_由“Sean Gillies”_启动,作为“libspatialindex”_链接的端口,“QGIS”_维护这些链接,以便为GUI操作提供即时索引支持。“R-trees”_的一个显著特性是能够在不需要全局分区边界的情况下将数据插入到结构中,这促使Sean采用了这段代码。“Howard Butler”_后来获得了“Rtree”_并添加了“libspatialindex”_提供的一些特性,包括磁盘序列化和批量加载,方法是为“libspatialindex”_编写一个C API,并重新编写“Rtree”_作为“ctypes”_包装器来使用这个C API。' Brent Pedersen ' _出现了,并添加了支持替代坐标排序、扩展pickle存储和大量文档的功能。Mattias (http://dr-code.org)添加了对自定义存储后端的支持,以支持使用“Rtree”_作为“ZODB”_中的索引类型。

“Rtree”_经历了多次迭代,在0.5.0版本中,它被完全重构为使用一个新的内部架构(ctypes + a C API over ' libspatialindex ' _)。这种重构带来了许多新特性和更大的灵活性。有关更多细节,请参见:ref: ' changes '。

注解

在1.6.1+ ' libspatialindex ' _c API中发现了一个重要的bug,它将无符号整数用于索引条目id而不是有符号整数。因为此时“Rtree”_似乎是C API的唯一重要用户,所以它立即得到了纠正。如果这是应用程序的一个重要考虑因素,则应该立即更新并将数据重新插入新索引。

Rtree 0.5.0包含了一个C库,它现在是libspatialindex的C API,并且是源代码树的一部分。代码库彼此独立,现在可以单独发展。Rtree是0.6.0+版本的纯Python。