2011-07-22 98 views
0

我有一個軌道3.0應用程序的ruby需要一個數據庫,其中包含所有列出的地方的名稱和地址在谷歌地圖索引的某個地區。我不需要顯示谷歌地圖本身提供的地圖,我只需要能夠從谷歌獲得某個地區的所有地方的名稱和地址,將其存儲在我的服務器上,然後匹配地址/名稱用戶在我的數據庫中輸入該地點(如果存在),或者如果不存在,則添加它。我有這方面的一些問題:Rails 3:從谷歌地圖建立地點數據庫

  1. 有沒有什麼寶石可以幫助這個?快速谷歌搜索提出了在谷歌地圖上以圖形方式顯示地點的寶石,但這不是我所需要的。

  2. 大概需要多少空間才能存儲名稱和地址,比如Google地圖索引的城市中的每個地點?

我很感激任何關於如何使用Google地圖數據庫構建地點數據庫作爲源並確保它可以快速訪問的反饋。

回答

1

我剛剛實施了Google地方信息的申請。 Google在Db中有大約400萬條記錄,所以我使用它的方法是,只需對Google地方進行卷曲調用並將其存儲在數據庫中,那麼下次我就可以從數據庫中提取該地點。不要將所有記錄存儲在Db中,因爲這會使您的Db太重。 Google地點每天只允許來自單個IP的1000個查詢。你還需要用Db排名,例如加拿大的巴黎和紐約的巴黎將會在你尋找巴黎的時候聚集在一起。 Google根據排名不提供數據。有一個不同的機制找到排名的地方

+1

好吧,我明白了。你能提供一些關於這方面的更多細節嗎?我假設您使用的是Google Places API。你手動解析了JSON/XML輸出還是你使用了rails gem? –

+1

我沒有提到它,因爲使用谷歌地方API非常明顯。我手動解析了JSON/XML,但您也可以使用[[http://flori.github.com/json/]] gem進行解析。如果您使用api,那麼在24個HRS中不能查詢超過1000次。因此,當用戶輸入任何目的地時,您將使api呼叫Google自動完成地點,因此當用戶選擇目的地時,它會返回地點的名稱,檢查目的地是否存在於數據庫中,如果是,從數據庫服務else做另一個調用來獲取數據並保存在數據庫中。 Donot獲取數據,直到需要 – shobhit

+0

它會讓你的應用程序快速,因爲數據不會被提取,直到需要。 – shobhit