注:因为最近用到这个rtree模块在网上没有找到次模块的相关介绍,所以自己简单的写了一些,不足之处还请大家见谅。
以上的 观点纯属个人的见解,如有错误还请见谅,
#在这里我们要理解清楚的一点是rtree中我们的一个最小元素就是一个矩形,在它里面所有的数据都是以矩形的实行存在不同的是矩形的大小不同,而不要以b树的点和线的思维来考虑。
#着一点我们一定要转换过来思维。
from rtree import index
p= index.Property()
idx = index.Index(properties=p)
idx.insert(4321,(34.3776829412, 26.7375853734, 49.3776829412,41.7375853734),obj=42)
#在id为4321的占位符处插入42并保存,
# print(idx.count((0, 0, 20, 20)))
#进行判断给定的四个点的范围与已经存在的四点或者多点构成的范围是不是有相交的点
hits = idx.intersection((0, 0, 60, 60), objects=True)
#找出与(0,0,60,60)有公共区域的所有的区域
# #计算这些点有已经存在的点的交点
# for i in hits:
# #与它有交点的应该有很多,但我们只要,id为4321处的交点。
# if i.id == 4321:
# print i.object
# print i.bbox
#在这些有公共区域的区域内id为4321的区域的范围以及obj
#对这段代码进行一个简单的注释,进行一个索引属性的设置,在索引列表中添加数据,
list(idx.intersection((0, 0, 60, 60), objects="raw"))
#将所有的与(0,0,60,60)有交集所有区域的bojects进行输出。
from rtree import index
idx = index.Index()
idx.insert(4321, (34.37, 26.73, 49.37, 41.73), obj=42)
hits = idx.nearest((30, 25, 48, 40), 1, objects=True)
print hits
#返回距离与给定区域最接近的区域的,这里返回几个区域可以进行设定,应用的话个人的理解是,我们可以在一个区域不是完全属于某一个区域的
#时候我们可以找到距离这个区域最近的一些区域。
from rtree import index
idx = index.Index()
idx.delete(4321,(34.3776829412, 26.7375853734, 49.3776829412,41.7375853734))
#进行某个节点的删除操作,