Python Rtree获取/设置标识

时间:2015-06-02 14:51:13

标签: python r-tree

我正在使用libspatialindex中的Rtree索引插入一些指示here的值:

>>> idx = index.Index()
>>> idx.insert(42, (0, 0, 1, 1))

如何更改ID 42的值?我正在寻找比删除+添加更便宜的东西。另外,我如何获得给定id的坐标值?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,似乎并不是一个通用的解决方案。所以这是我的黑客,希望可以帮助:

我的设置:

class Point:
    def __init__(self,x,y):
        self.x = x
        self.y = y

当我索引所有积分时,我运行此代码:

idx = index.Index()
# input_points is a list of Point object
for ind, pt in enumerate(input_points):
    idx.insert(ind, (pt.x, pt.y, pt.x, pt.y))
return idx

您可能已经注意到,我为每个点分配的id是我input_points列表中该点的索引。

所以稍后当我想通过id获得特定点时,我会运行:

target_point = input_points[id] 

然后你可以用target_point做事,因为那应该是你要找的点。

这只是一个黑客,所以如果你找到一个通用的解决方案,请告诉我,我也很好奇。