2012-01-16 24 views
5

Estoy desarrollando una aplicación gis usando Google maps API. Actualmente estoy usando Postgis db.Aplicación GIS con django y google maps usando mongodb

estoy considerando cambiar a MongoDB y he siguientes preguntas sobre esto,

  1. Es mongodb una opción viable para el almacenamiento de datos GIS. (¿Hay algún otro motor NoSQL viable?)

  2. ¿Django-nonrel ha modificado el módulo django.contrib.gis para el soporte de mongodb? y qué tan bien funciona?

Gracias de antemano :)

Respuesta

5

según lo declarado por Sergio Tulentsev, MongoDB tiene índices espaciales. Pero, no todos los tipos de geometría se pueden almacenar. Hasta donde yo sé, actualmente solo se pueden almacenar puntos. Sin embargo, puede consultar usando un polígono.

Dado que MongoDB es muy flexible, puede almacenar la geometría como texto, pero también como un objeto JSON. Por ejemplo, puede almacenar una coordenada como: {lon: 52.1234, lat: 14.1245}. Puede interpretar esto en su propia aplicación como lo desee.

La desventaja de esto es que no hay un índice nativo. Si nunca tiene que realizar consultas en función de la ubicación/relación espacial, está bien. Si tiene una consulta basada en la ubicación/relación espacial, debería escribir su propio índice. Puede ser algo difícil de hacer ...

Hay CouchDB que tiene una adición GeoSpatial. No sé cómo funciona/lo que apoya sin embargo.

Algunas empresas grandes basadas en datos también adoptan un enfoque híbrido. Por ejemplo, use MongoDB para almacenar/consultar datos normales, y PostGIS para almacenar/consultar datos geoespaciales.

+0

gracias por su respuesta, actualmente yo también estoy tomando el enfoque híbrido pero estoy considerando completar NoSQL en esto. –

3

He estado trabajando con MongoDb almacenando puntos de interés en la base de datos, luego haciendo punto en consultas poli, junto con consultas radius y Mongo ha sido LEJOS superior a PostGres. He tenido tiempos de respuesta mucho más rápidos con cientos de miles de artículos.

Yo diría, sin embargo, dependiendo de la complejidad de sus consultas (es decir, si está haciendo algo más allá del punto en poli, radio alrededor de un punto), es posible que desee un db GIS más pesado como postgres ... simplemente va a obtener el peso extra de postgres también.

Lo siento, no puedo hablar de nada en django también.

4

Django MongoDB Engine developer aquí.

No contamos con ningún tipo de soporte real para las funciones GIS de MongoDB. Sin embargo, es posible hacer consultas geoespaciales "trabajando alrededor de Django" (ver http://django-mongodb.org/topics/lowerlevel.html - el primer ejemplo es realmente acerca de los índices Geo).

Debería ser posible, sin embargo, implementar compatibilidad nativa con Django GIS en el backend de MongoDB. ¡Estamos muy felices de ser mentores de cualquier persona que quiera abordar esa tarea!

+0

Hola Jonas, me encantaría ayudar con la implementación del soporte nativo de Django GIS para el backend de MongoDB. ¿Sigues buscando desarrolladores? –

+0

Ya no estoy trabajando activamente en ese proyecto, pero sí, ¡creo que están increíblemente felices con los nuevos contribuyentes! –

+0

Gracias, Jonas. Si pudieras ponerme en contacto con alguien o dirigirme hacia una página, sería increíble –