2016-11-19 24 views
0

我正在開發一個項目,我需要檢測某個特定區域是否覆蓋了某個位置。例如:如何在C++中檢測地圖中給定位置的區域?

enter image description here

假設圖像是我的地圖,並有2個地方與給定區域內的一個與黃色和其他與綠顏色,所以如果我問我的應用程序:「哪個地方覆蓋面積從1到3,從A到F?「它應該告訴我這兩個地方,等等。

我在考慮使用矩陣,但我需要加載5個地圖,每個地圖都不同,例如,第二個地圖從H開始,以M結尾,開始於10,結束於30。不知道還有什麼其他用途,有什麼想法?

回答

1

通常找到重疊或相交於某個其他區域的二維區域是稱爲R-Tree的數據結構的作業。地點被輸入到R-Tree中。然後,您查詢rtree以查看哪些查詢區域受到查詢。您可以使用C++ R-Tree庫並將這些位置放入內存中的R-Tree中,也可以將您的位置放入支持R-Trees的數據庫中,如sqite。您可以將地點保存到數據庫,然後通過查詢數據庫將它們帶入內存。 Sqlite是一個進程內數據庫。你不需要爲此設置一個單獨的服務器。

相關問題