【发布时间】:2015-06-02 14:51:12
【问题描述】:
我正在使用libspatialindex 中的 Rtree 索引插入一些值,如 here 所示:
>>> idx = index.Index()
>>> idx.insert(42, (0, 0, 1, 1))
如何更改 id 42 的值?我正在寻找比删除+添加成本更低的东西。另外,如何获取给定 id 的坐标值?
【问题讨论】:
我正在使用libspatialindex 中的 Rtree 索引插入一些值,如 here 所示:
>>> idx = index.Index()
>>> idx.insert(42, (0, 0, 1, 1))
如何更改 id 42 的值?我正在寻找比删除+添加成本更低的东西。另外,如何获取给定 id 的坐标值?
【问题讨论】:
我遇到了同样的问题,但似乎没有通用的解决方案。所以这是我的hack,希望能有所帮助:
我的设置:
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 做一些事情,因为那应该是你正在寻找的点。
这只是一个hack,所以如果你找到了一个通用的解决方案,请告诉我,我也很好奇。
【讨论】: