我有一个包含点的rtree,即左侧==右侧&&顶部==底部:
...
idx = index.Index()
....
*print list(idx.nearest((rand_point[0], rand_point[1], rand_point[0], rand_point[1])))
...
left, bottom, right, top = (newpoint[0], newpoint[1], newpoint[0], newpoint[1])
idx.insert(i, (left, bottom, right, top))
...
代替点,有一些长代码定义了' point',' newpoint'' i'以及循环中的所有内容。标有*的行返回smth,如:
[0L]
[0L]
[2L]
[2L]
[1L]
[4L]
[6L]
[5L].....
问题是如何得到一个点,即(左,下,右,上)知道这个输出?
答案 0 :(得分:0)
使用
idx.nearest(.... objects="raw")
或
idx.nearest(.... objects=True)
如果你想要实际的对象,而不仅仅是ID。
答案 1 :(得分:0)
我找到了解决方案:
nearest_gen = idx.nearest((rand[0], rand[1], rand[0], rand[1]), objects=True)
nearest_list = list(idx.nearest((rand[0], rand[1], rand[0], rand[1])))
for j in nearest_gen:
if j.id == nearest_list[0]:
j.object
print ['%.10f' % t for t in j.bbox]