我是python的新手,我使用import rtree库。我将二维点数据索引到rtree中并指定查询框(矩形)。我应该得到位于查询框中的点。但是我正在查询框中找到最近的点。
My code is below
from rtree import index
idx = index.Index()
left, bottom, right, top = (0.0, 0.0, 1.0, 1.0)
idx.insert(0, (1,2))
idx.insert(1, (8,2))
idx.insert(2, (6,2))
idx.insert(3, (1,2))
idx.insert(4, (2,2))
idx.insert(5, (3,2))
idx.insert(6, (7,2))
idx.insert(7, (1,2))
idx.insert(8, (8,2))
idx.insert(9, (6,2))
query_box = [100,29,144,90]
list(idx.nearest((query_box)))
但是我得到的结果不在查询框中。
from rtree import index
idx = index.Index()
left, bottom, right, top = (0.0, 0.0, 1.0, 1.0)
idx.insert(0, (1,2))
idx.insert(1, (8,2))
idx.insert(2, (6,2))
idx.insert(3, (1,2))
idx.insert(4, (2,2))
idx.insert(5, (3,2))
idx.insert(6, (7,2))
idx.insert(7, (1,2))
idx.insert(8, (8,2))
idx.insert(9, (6,2))
query_box = [100,29,144,90]
list(idx.nearest((query_box)))
Out[142]: [1, 8]
在输出中,您可以看到rtree返回的索引1、8靠近查询框的外部。但我只需要查询框内的点即可。他们建议使用rtree获取位于查询框中的点。
答案 0 :(得分:1)
如果需要交点,请使用方法intersection
。
顾名思义,方法nearest
返回最近的邻居。