2012-01-16 53 views
5

我正在開發一個使用谷歌地圖API的gis應用程序。目前我正在使用Postgis db。django和谷歌地圖使用mongodb的GIS應用程序

我正在考慮轉換到MongoDB的和我有以下關於這個問題,

  1. 是MongoDB中存儲GIS數據的可行選擇。 (是否有其他NoSQL引擎可行?)

  2. django-nonrel是否修改了dongang.contrib.gis模塊以支持mongodb?它的工作效果如何?

感謝提前:)

回答

5

如前所述塞爾吉奧Tulentsev,MongoDB的具有空間索引。但是,並非所有的幾何類型都可以存儲。據我所知,目前只有點可以存儲。但是,您可以使用多邊形進行查詢。

由於MongoDB非常靈活,您可以將幾何存儲爲文本,也可以將其存儲爲JSON對象。例如,您可以存儲一個像這樣的座標:{lon:52.1234,lat:14.1245}。只要你喜歡,你可以解釋這是你自己的應用程序。

這樣做的缺點是沒有本地索引。如果你不需要根據位置/空間關係進行查詢,那麼你很好。如果您確實有基於位置/空間關係的查詢,則必須編寫自己的索引。可以是一件困難的事情...

有CouchDB有一個GeoSpatial加法。不知道它如何工作/它支持什麼。

一些大型數據公司也經常採用混合方法。例如,使用MongoDB存儲/查詢普通數據,使用PostGIS存儲/查詢地理空間數據。

+0

感謝您的回覆,目前我也在採取混合方式,但我正在考慮在此上完整的NoSQL。 – 2012-01-16 14:10:46

3

我一直在使用MongoDb存儲DB中感興趣的點,然後在poly查詢中進行點查詢,並且使用radius查詢,並且Mongo的FAR優於PostGres。數十萬件物品的響應時間更快。

不過,根據查詢的複雜程度(也就是說,如果你在聚點,半徑周圍的點以外做某些事情),你可能想要一個更重的GIS數據庫像postgres ..你只是也會得到postgres的額外重量。

對不起,我不能在django上講任何事情。

4

Django MongoDB Engine開發人員在這裏。

我們對MongoDB的GIS功能沒有任何真正的支持。雖然可以通過「圍繞Django工作」來執行地理空間查詢(請參閱http://django-mongodb.org/topics/lowerlevel.html - 第一個示例實際上是關於地理索引)。

但是,應該可以將本地Django GIS支持實現到MongoDB後端。我們很樂意爲任何想要完成這項任務的人提供指導!

+0

嗨喬納斯,我很樂意幫助實現MongoDB後端的本地Django GIS支持。你還在尋找開發人員嗎? – 2014-02-07 15:17:57

+0

我不再積極參與該項目,但是,我猜他們對任何新貢獻者都感到非常高興! – 2014-02-07 23:38:56

+0

謝謝,喬納斯。如果你可以讓我與某人聯繫或指向我的頁面,那會很棒 – 2014-02-08 04:20:28

相關問題