2012-01-16 19 views
5

GoogleマップAPIを使ってgisアプリケーションを開発しています。現在私はPostgisのデータベースを使用しています。私はMongoDBのに切り替える検討していますし、私はこのことについての質問に次のようしているmongodbを使ったdjangoとgoogle mapsを使ったGISアプリケーション

  1. は、GISデータを格納するための実行可能な選択肢をMongoDBのです。 (他のNoSQLエンジンも実行可能ですか?)

  2. django-nonrelはmongodbをサポートするためにdjango.contrib.gisモジュールを変更しましたか?それはどれくらいうまく機能しますか?セルジオTulentsevで述べたように、事前に

感謝:)

答えて

5

は、MongoDBは空間インデックスを持っています。ただし、すべてのジオメトリタイプを保存できるわけではありません。私が知る限り、現在のところポイントだけを保存することができます。ただし、ポリゴンを使用してクエリを実行できます。

MongoDBは非常に柔軟なので、ジオメトリをテキストとして保存することもできますが、JSONオブジェクトとして保存することもできます。たとえば、{lon:52.1234、lat:14.1245}のような座標を格納できます。これはあなたが好きなように自分のアプリケーションにあると解釈することができます。

これの欠点は、ネイティブインデックスがないことです。あなたが場所/空間関係に基づいて照会する必要がないなら、あなたは大丈夫です。場所/空間関係に基づいてクエリを実行する場合は、独自のインデックスを作成する必要があります。難しいことができます...

GeoSpatialが追加されたCouchDBがあります。どのように動作するか、それが何をサポートしているかわからない。

大規模なデータベースの企業では、ハイブリッドなアプローチが採用されることがよくあります。たとえば、MongoDBを使用して通常のデータを格納/照会し、PostGISを使用して地理空間データを格納/照会します。

+0

あなたの回答に感謝していますが、現在も私はハイブリッドアプローチを取っていますが、これについてはNoSQLを完全に検討しています。 –

3

私はDBに関心のあるポイントを保存してから、ポリクエリーのポイントを半径クエリーと共に実行していました。そして、MongoはPostGresよりはるかに優れています。私は何十万ものアイテムではるかに速い応答時間を持っていました。

私はあなたの質問の複雑さに応じて(つまり、ポリゴンの点を超えて何かをしているなら、ポイントの周りの半径)、あなたはポストグルのようなもっと重いGISデータベースを望むかもしれません。ポストグラムの余分な重量も得られるだろう。

申し訳ありません申し訳ありませんが、私はジャンゴの何かに話すことはできません。

4

Django MongoDB Engine開発者はこちらです。

私たちはMongoDBのGIS機能のためのどんな種類の本当のサポートも持っていません。しかし、「Djangoを使って作業する」ことによって地理空間クエリを行うことは可能です(http://django-mongodb.org/topics/lowerlevel.html - 最初の例は実際にジオインデックスに関するものです)。

しかし、ネイティブのDjango GISサポートをMongoDBバックエンドに実装することは可能です。私たちはその仕事に取り組みたいと思っている人には、本当に幸せです!

+0

こんにちはJonas、私はMongoDBバックエンドのネイティブDjango GISサポートの実装を手伝っていきたいと思います。あなたはまだ開発者を探していますか? –

+0

私はもうこのプロジェクトには積極的に取り組んでいませんが、はい、私は彼らが新しい貢献者について非常に満足していると思います! –

+0

ありがとう、ジョナス。誰かと連絡を取ったり、ページに向かって私を指差してくれたら、それはすばらしいでしょう –

関連する問題