2010-09-18 50 views
5

我想建立一個應用程序,它會根據您的位置爲您提供最近的餐廳。我們將有一個數據庫,其中包含與餐廳相對應的所有POI,並且我們將使用您的手機的GPS獲取您的位置...什麼是兩維最近鄰問題的好算法?

什麼算法適合?我在哪裏可以找到關於它的好文檔?

感謝

回答

2

主要問題是您如何存儲和搜索數據。如果您使用的是不支持空間索引的SQL數據庫(比方說Android上的SQLite),請考慮將空間數據轉換爲線性Z-order曲線。算法很簡單,我知道(好,寫)this的實現。

+0

這真棒代碼托馬斯,起首! – 2011-10-10 20:50:07

+0

在大型數據庫上執行最近鄰居查詢似乎並不是直接在android上執行的一件好事。首先,數據庫服務器就是這樣做的。 – 2013-09-02 10:30:03

+1

@Tim我同意Z-order對於大型數據庫並不是那麼好。順便說一句,自從我在2010年回答以來,我實現了一個[R-Tree](http://h2database.com/html/mvstore.html#r_tree),它應該允許高效的最近鄰居查詢(一旦實現)和也應該在Android上工作。但它不使用SQLite。 – 2013-09-02 11:38:27