2011-11-29 64 views
0

我正在開發一個具有郵政地址路由的Android應用程序。需要按順序對數據庫表中的郵政地址進行排序

我們希望按照每種地址都可以打印出來用於驅動程序的方式對數據庫表中的每個地址進行排序。我們不希望花費時間對數據庫表格進行排序,因爲這是理想的選擇。

我在想方設法在表中創建一個數字的主鍵,我們可以很容易地按升序排序。這可以很容易地爲駕駛員創建清單。

我一直在研究,發現有一種叫做WOEID(我認爲代表一個地區的ID),但我不確定它對我們是否有好處,因爲2個郵政地址在同一個社區可以使用相同的WOEID。

例如這3個地址具有相同的WOEID:

100 Bowden St., Lowell, MA 
131 Stedman St., Lowell, MA 
50 Stromquest Ave., Lowell, MA 

使用像WOEID一個數字的概念是非常適合我們,但我們需要的,所以我們知道哪些是像這些地址,以便進行排序彼此最接近。

也許有一個網站,我們可以用它來發送一個請求,從我們的應用程序提供他們的郵政地址,該網站將返回一個單一的數字代表該地址的格式,我們的應用程序可以解析。

也許有一種方法可以將地理編碼或將緯度和經度數字轉換爲我們可以使用的單個數字。

謝謝。

回答

0

我發現了一個網站,允許我做一個反向地理編碼。它返回一個緯度和經度。

我嘗試了一下,發現我可以一起添加經度和緯度來獲得單個數字。既然給網站一個確切的地址,結果將不完全是我要找的結果,我只是給它一個街道,城市和美國的州定位。然後,我可以使用返回的經度和緯度,然後按數字升序對房屋地址進行排序。

例如,我們有許多非常像網格的街道,因此經緯度的增加代表1個特定街道上的許多家庭。在另一條街外,我做了同樣的事情。現在我所要做的只是列出數據庫表中的所有內容,如下所示: 城市通過下拉列表選擇,美國州也通過下拉列表選擇,然後是每條街道的地理編號,然後是家庭號碼。

這裏是網站我用來獲取地理編碼與樣品街道地址一起:

http://where.yahooapis.com/geocode?q=stedman+st,+lowell,+ma 
0

因此,當多個地址共享相同的WOEID時會出現問題?我不知道有多少資源可用,但是不知道將這些數據提供給Google Maps等某些API並計算從您的位置到那裏的距離?

如果你想避免谷歌一個真正的基本方法可能是自己做計算。 (雖然這將是更大的估計。)

但是我的感覺你想找到超過總距離的最佳途徑,所以我認爲你的問題,也關係到travelling salesman problem

給出一個列表的城市和他們的成對距離,任務是到 找到一次訪問每個城市的最短可能的遊覽。

+0

是的,這就是我們正在嘗試做的。我曾經爲一家爲Paratransit行業做過路由的公司工作,但他們不會讓我們知道他們用來將地址轉換成他們在數據庫表中使用的單一號碼的祕密。由於我是所有這些的初學者,你能告訴我如何獲得這些信息,也許可以帶我去看一個教程嗎? –

相關問題