Verwendung von GeoDjango

9

Wir erstellen eine Website, auf der geografische Daten auf der Karte angezeigt werden (derzeit wird die js-API von Google Maps verwendet). Wir verwenden derzeit postgres + postGIS + php. Es wurde empfohlen, die Verwendung von GeoDjango zu untersuchen. Ich habe Probleme zu bestimmen, welche zusätzlichen geografischen Funktionen GeoDjango über die bereits in postGIS verfügbaren Funktionen hinaus bietet (dh Punkte, Linestrings, Polygone, Entfernungsberechnungen, Flächenberechnungen, "innerhalb" der Logik usw.).

Bietet GeoDjango zusätzliche Funktionen oder soll die Verwendung vorhandener geografischer Funktionen vereinfacht werden?

Vielen Dank!

geouser
quelle

Antworten:

11

GeoDjango bietet außerdem viele sofort einsatzbereite Funktionen mit Mehrwert.

  • Geospatial aktivierte Admin-Site: Dies ist eine meiner Lieblingsfunktionen von Django im Allgemeinen. Django erstellt automatisch hübsch aussehende Administrationsseiten. GeoDjango geht noch einen Schritt weiter und bietet Ihnen die Möglichkeit, Geodaten mithilfe einer Openlayers-Karte einfach anzuzeigen und zu bearbeiten.
  • GeoRSS / GeoAtom-Feeds: Das Erstellen von GeoRSS / GeoAtom-Feeds ist relativ einfach.
  • KML / GML / GeoJSON-Unterstützung: GeoDjango unterstützt die KML-, GML- und GeoJSON-Serialisierung. Als Haftungsausschluss habe ich einige REST-APIs mit Django erstellt und festgestellt, dass ich die in GeoDjango integrierten Funktionen dafür nicht verwende.
  • Bibliotheken von Drittanbietern: OLWidgets ist ein Beispiel für eine Bibliothek von Drittanbietern für GeoDjango, die das Erstellen interaktiver Karten erleichtert. Außerdem haben Sie Zugriff auf eine Vielzahl von Python-Bibliotheken. Als Beispiel gibt es ein Projekt namens Haystack, das Volltextsuche bietet. Wenn Sie einen externen Suchindex wie Solr oder Elasticsearch verwenden, können Sie mit Django geografisch aktivierte Volltextsuchen durchführen. Persönlich ist Elasticsearch ein großartiger Ersatz für PostGIS für räumliche Suchen. Es verfügt nicht über alle Funktionen von Postgis, leistet jedoch in den meisten Anwendungsfällen gute Arbeit.
  • Es macht es wirklich einfach, zwischen verschiedenen Datenbanken zu wechseln. Ich persönlich habe GeoDjango mit Spatialite und Postgis verwendet.

Meine allgemeine Einschätzung ist, dass Django und Python für die Webentwicklung viel besser sind. Wir haben alle unsere persönlichen Vorurteile, aber Python verfügt über eine große Sammlung von räumlichen und numerischen Bibliotheken. Dies macht es zu einer guten Wahl, wenn Sie komplexe Geodatenalgorithmen implementieren müssen.

Shawn H.
quelle
3

Ja. das ist richtig. Es ist beabsichtigt, die Verwendung vorhandener geografischer Funktionen mit Grundfunktionen zu vereinfachen. und es bietet viele geografische Funktionen mit einigen Datenbanken, wie im folgenden Bild gezeigt;

räumlich

Darüber hinaus ist es nicht schwer, mit einer Absatzfunktion ein zufriedenstellenderes Ergebnis zu erzielen. Mit diesem Code erhalten Sie Objekte im Umkreis von 5 km.

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

Wenn Sie weitere Informationen über Geodjango erhalten möchten, können Sie meine Antwort hier zum gleichen Thema lesen .

ich hoffe es hilft dir ...

Aragon
quelle
Ich =qs = Events.objects.filter(point__distance_lte=(pnt, D(km=5)))
denke