Utilizzo di GeoDjango


9

Stiamo creando un sito Web che visualizza i dati geografici sulla mappa (attualmente utilizzando l'API js di Google Maps). Attualmente stiamo usando Postgres + PostGIS + PHP. Mi è stato consigliato di esaminare l'utilizzo di GeoDjango. Sto riscontrando problemi nel determinare quale ulteriore funzionalità geografica GeoDjango fornisce al di sopra di ciò che è già disponibile in postGIS (ovvero punti, linee, poligoni, calcoli di distanza, calcoli di area, logica "entro" ecc.).

GeoDjango fornisce funzionalità aggiuntive o ha intenzione di semplificare l'utilizzo delle funzionalità geografiche esistenti?

Grazie!

Risposte:


11

GeoDjango offre anche molte funzioni a valore aggiunto e pronte all'uso.

  • Sito di amministrazione abilitato geospazialmente: questa è una delle mie funzionalità preferite di Django in generale. Django crea automaticamente pagine di amministrazione dall'aspetto molto carino. GeoDjango fa un ulteriore passo avanti e ti offre un modo per visualizzare e modificare facilmente i dati geospaziali usando una mappa di Openlayers.
  • Feed GeoRSS / GeoAtom: la creazione di feed GeoRSS / GeoAtom è relativamente semplice.
  • Supporto KML / GML / GeoJSON: GeoDjango supporta la serializzazione KML, GML e GeoJSON. Anche se come disclaimer, ho fatto alcune API REST con Django e ho scoperto che non utilizzo le funzionalità integrate in GeoDjango per questo.
  • Librerie di terze parti: OLWidgets è un esempio di libreria di terze parti per GeoDjango che semplifica la creazione di mappe interattive. Inoltre, hai accesso a una vasta gamma di librerie Python. Ad esempio, esiste un progetto chiamato Haystack che fornisce funzionalità di ricerca full-text. Se si utilizza un indice di ricerca esterno come Solr o Elasticsearch, è possibile utilizzare Django per eseguire ricerche full-text abilitate geospazialmente. Personalmente, Elasticsearch è un ottimo sostituto di PostGIS per le ricerche spaziali. Non ha tutte le funzionalità di Postgis, ma fa un buon lavoro per la maggior parte dei casi d'uso.
  • Rende davvero facile spostarsi tra database diversi. Personalmente ho usato GeoDjango con Spatialite e Postgis.

La mia valutazione generale è che Django e Python sono molto meglio per lo sviluppo web. Tutti noi abbiamo il nostro pregiudizio personale, ma Python ha una vasta collezione di librerie geospaziali e numeriche. Questo lo rende una buona scelta se è necessario implementare algoritmi geospaziali complessi.


3

sì. è giusto. si intende semplificare l'utilizzo delle funzionalità geografiche esistenti con funzioni di base. e fornisce molte funzioni geografiche con alcuni database come mostrato nella seguente immagine;

spaziale

inoltre, non è difficile ottenere risultati più soddisfacenti con una funzione di paragrafo. questo codice fornisce oggetti nel raggio di 5 km.

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

se vuoi ottenere maggiori informazioni su geodjango, puoi consultare la mia risposta qui sullo stesso argomento.

spero che ti aiuti ...


Penso che tu abbia bisogno di un =segno:qs = Events.objects.filter(point__distance_lte=(pnt, D(km=5)))
Francis Yaconiello,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.