如何在rtree中获得界限

时间:2014-04-29 13:12:22

标签: python r-tree

我有一个包含点的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].....

问题是如何得到一个点,即(左,下,右,上)知道这个输出?

2 个答案:

答案 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]