Uso de GeoDjango

9

Estamos creando un sitio web que muestra datos geográficos en el mapa (actualmente usando la API de Google Maps js). Actualmente estamos usando postgres + postGIS + php. Se ha recomendado que investigue el uso de GeoDjango. Tengo problemas para determinar qué funcionalidad geográfica adicional proporciona GeoDjango por encima de lo que ya está disponible en postGIS (es decir, puntos, cadenas de líneas, polígonos, cálculos de distancia, cálculos de área, lógica "dentro", etc.).

¿GeoDjango proporciona funcionalidad adicional o es su intención simplificar el uso de la funcionalidad geográfica existente?

¡Gracias!

geouser
fuente

Respuestas:

11

GeoDjango también ofrece muchas funciones listas para usar de valor agregado.

  • Sitio de administración habilitado geoespacialmente: esta es una de mis características favoritas de Django en general. Django crea automáticamente páginas de administrador bastante bonitas. GeoDjango lleva esto un paso más allá y le proporciona una forma de ver y editar fácilmente los datos geoespaciales utilizando un mapa Openlayers.
  • Fuentes GeoRSS / GeoAtom: Crear fuentes GeoRSS / GeoAtom es relativamente fácil.
  • Compatibilidad con KML / GML / GeoJSON: GeoDjango admite la serialización de KML, GML y GeoJSON. Aunque como descargo de responsabilidad, he hecho algunas REST-API con Django y descubrí que no uso las capacidades integradas en GeoDjango para esto.
  • Bibliotecas de terceros: OLWidgets es un ejemplo de una biblioteca de terceros para GeoDjango que facilita la creación de mapas interactivos. Además, tiene acceso a una amplia variedad de bibliotecas de Python. Como ejemplo, hay un proyecto llamado Haystack que proporciona capacidad de búsqueda de texto completo. Si está utilizando un índice de búsqueda externo como Solr o Elasticsearch, puede usar Django para realizar búsquedas de texto completo habilitadas geoespacialmente. Personalmente, Elasticsearch es un gran reemplazo para PostGIS para búsquedas espaciales. No tiene todas las características de Postgis, pero hace un buen trabajo para la mayoría de los casos de uso.
  • Hace que sea muy fácil moverse entre diferentes bases de datos. Personalmente he usado GeoDjango con Spatialite y Postgis.

Mi evaluación general es que Django y Python son mucho mejores para el desarrollo web. Todos tenemos nuestro sesgo personal, pero Python tiene una gran colección de bibliotecas geoespaciales y numéricas. Esto lo convierte en una buena opción si necesita implementar algoritmos geoespaciales complejos.

Shawn H
fuente
3

si. eso es correcto. tiene la intención de simplificar el uso de la funcionalidad geográfica existente con funciones básicas. y proporciona muchas funciones geográficas con algunas bases de datos como se muestra en la siguiente imagen;

espacial

Además de esto, no es difícil obtener un resultado más satisfactorio con una función de párrafo. Este código le proporciona objetos en un radio de 5 km.

qs = Events.objects.filter(point__distance_lte(pnt, D(km=5)))

si desea obtener más información sobre geodjango, puede consultar mi respuesta aquí sobre el mismo tema.

Espero que te ayude...

Aragón
fuente
Creo que necesitas una =señal:qs = Events.objects.filter(point__distance_lte=(pnt, D(km=5)))
Francis Yaconiello