簡體   English   中英

如何使用rtree,python在查詢框(查詢區域)內找到最近的點

[英]how to find nearest point within querybox(query area) using rtree, python

我是 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 獲取位於查詢框中的點。

如果你想要交集,使用方法intersection

該方法nearest返回最近的鄰居,顧名思義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM