2013-03-08 35 views
0

對於我的下一個Ruby on Rails項目,我將不得不存儲和查詢地理空間數據。更確切地說,我想要做以下事情:Rails中的地理空間應用

  • 在數據庫中存儲數千個經緯度對。
  • 查詢點是否在任意點的某個半徑內。
  • 查詢點是否在矩形內(跨越兩點之間)
  • 可能查詢點是否在任意多邊形內。
  • 可能存儲大量的點在「位置日誌」(高達幾百秒),當然後來檢索它們。

另一個非常重要的查詢是:

  • 我找最近的N個存儲點相對於緯度/經度對。

什麼是最無痛苦的零部件組合?我關心快速實施和非常快速的查詢。

我發現this presentation和作者似乎贊成Postgres和activerecord-postgis-adapter,但也許還有其他值得的意見。

這只是一個小的原型項目,但我已經運行了MySQL,所以我對這方面的經驗感興趣。或者,Postgres + PostGIS絕對是您的選擇?而且我知道MongoDB使得開始使用地理數據變得很容易,但是,這次我想使用關係數據庫。

任何輸入是非常讚賞。

+1

-1?顯然這當時並不是一個好問題。無論如何,我去了MySQL,目前一切都很好。這裏是我的Gemfile中的相關gem:mysql2,spatial-adapter和geokit-rails3。 – scrrr 2013-03-26 05:34:59

回答

1

MySQL也支持GIS。儘管MSSQL和Postgres對此有着出色的庫支持,但MySQL也可以很好地運行。檢查function list MySQL provides

  • MySQL:爲地理信息系統和計劃者計算使用地理數據類型。 文檔 - >好
  • MSSQL:同時具有地理和幾何數據類型。 文檔 - >太好了。 幫助 - >真棒
  • Postgres:有地理和幾何數據類型。 文檔 - >太棒了。 幫助 - >好

明智的選擇:)

+1

很好的答案,謝謝。我決定使用MySQL,我的解決方案在評論中。 – scrrr 2013-03-26 05:33:47

+0

非常歡迎。很高興這有助於:) – 2013-03-26 05:37:52

1

曾用MongoDB的與mongoid。做得很好。另外,嘗試使用elasticsearch(輪胎寶石)進行地理搜索。

+0

是的,我知道MongoDB做得很好,但我想要一些關係。但感謝與elasticsearch提示。 – scrrr 2013-03-26 05:35:43