2011-04-28 41 views
2

新手入門。我正在構建一個應用程序,讓用戶在某個位置創建事件,並計劃在heroku上進行託管。其他用戶可以查看在其緯度/經度x英里範圍內發生的事件。我正在尋找一種解決方案,幫助我獲取x英里半徑範圍內發生的所有事件。選項似乎是GeocoderGeokit。 Geokit似乎更受歡迎,但似乎並沒有準備好Rails 3.對於我想要做的事情,有明顯的選擇嗎?Geocoder vs Geokit在緯度/經度座標的X英里內尋找對象?

+1

有一個geils的Rails3分支(我使用):https://github.com/jlecour/geokit-rails3 – apneadiving 2011-04-28 07:28:21

回答

0

您應該使用MongoDB,它是通過Heroku插件提供的。有了Mongo,你就可以訪問空間查詢(「找到這個圈子裏的所有事件」):http://www.mongodb.org/display/DOCS/Geospatial+Indexing

不幸的是,如果你嘗試使用Postgres的geospacial索引,你會發現Heroku默認不提供它。

看看Mongoid,它可以讓你在Mongo中做文檔的ActiveRecord風格表示,並且很容易。

+0

我以爲Heroku只提供Postgresql。所以我必須在其他地方主持mongo?此外,如果使用postgres,如果我只使用geocoder或geokit gem/plugin,它會不會起作用? – John 2011-04-28 07:39:44

+1

您只需添加它作爲一個插件:http://addons.heroku.com/mongohq它_may_與Postgres工作了一段時間,但你會最終與您的數據庫運行一些可怕的查詢,如果你的想法是有些東西會讓你不得不重寫它以使用空間查詢,這意味着使用PostGIS自我託管的postgres。 – stef 2011-04-28 07:42:57

+1

Postgres真的很弱,我無法運行查詢獲取某個位置範圍內的事件嗎?它在Mongoid網站上說,在繼續之前,我應該很好地提高Ruby的知識和MongoDB的全面知識,否則我會陷入「痛苦的世界」。有多少同時發生的查詢會突然出現,你能告訴我嗎? thy – John 2011-04-28 08:34:57