Python Rtree get/set 一个id的坐标

Python Rtree get/set coordinates for an id

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

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

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

我遇到了同样的问题,但似乎没有通用的解决方案。所以这是我的技巧,希望能有所帮助:

我的设置:

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 做一些事情,因为那应该是你正在寻找的点。

这只是一个技巧,所以如果您找到了通​​用解决方案,请告诉我,我也很好奇。