Geodaten in Geodjango mit welcher DB- auch in der Cloud?
Verfasst: Samstag 7. Dezember 2013, 23:52
Hallo,
ich möchte mit Django eine Seite basteln auf der User Orte eintragen und finden können. Konkret: Pommesbudenbetreiber Kartoffel Karl trägt seine Pommesbude ein inkl. Geodaten (Adresse) und Pommesesser Majo Martin kann dann den kürzesten Weg zu Kartoffel Karl finden, wenn er in sein mobiles Endgerät eingibt "Zeige mir alle Pommesbuden im Umkreis von 200 m um meinen Standort" bzw., besser zum Beispiel oben passend "Zeige mir die Entfernung von meinem Standort bis zum Kartoffel Karl".
Wie und mit welchen Datenbanken kann ich das am besten realisieren? Und das am allerbesten noch als Cloudinstallation?
So, wie es in der GeoDjango Dokumentation steht, kommen folgende DB-Erweiterungen infrage:
Dann kann man noch die entsprechende Google Projektion dazuinstallieren.
Und jetzt sind wir an dem Punkt, wo ich nicht mehr weiterkomme:
1) Grundsätzlich ist mir unklar, was das Besondere an Geodaten ist. Warum kann ich Längen- und Breitengrade nicht ganz einfach in Tabellen eintragen wie andere Daten auch?
2) Wie bringe ich das Ganze in Verbindung mit einem der gängigen Web-Kartendienste, also Google Maps oder Bing Maps oder Openstreetmap?
3) Im Grunde könnten die Pommesbuden im Beispiel ja auch direkt in den jew. Kartendienst eingetragen und die Jarte dann einfach eingebunden werden. Wo liegt jetzt hier mein Denkfehler?
4) Und iwe harmonieren die Sachen mit Djangos ORM?
Damit die Probleme nicht so schnell behoben sind, kommt jetzt noch der Extrawunsch: am liebsten soll das ganze als Cloudinstallation realisiert werden. Googelt man, findet man viele private Anbieter mit speziellen Dienstleistungen dazu- aber wenige freie (keine?) Lösungen.
Da Googles App Engine netterweise bereits eine Djangoinstallation bereithält, wäre es natürlich schön, wenn dann auch die Geodaten dort untergebracht werden könnten. Das sieht, nach meiner bisherigen Recherche wenigstens, nicht so toll aus. Es gibt nur eine GIScloud, die aber nur auf Java läuft.
Wie bekomme ich das alles zusammen?
Danke schonmal im Voraus!
ich möchte mit Django eine Seite basteln auf der User Orte eintragen und finden können. Konkret: Pommesbudenbetreiber Kartoffel Karl trägt seine Pommesbude ein inkl. Geodaten (Adresse) und Pommesesser Majo Martin kann dann den kürzesten Weg zu Kartoffel Karl finden, wenn er in sein mobiles Endgerät eingibt "Zeige mir alle Pommesbuden im Umkreis von 200 m um meinen Standort" bzw., besser zum Beispiel oben passend "Zeige mir die Entfernung von meinem Standort bis zum Kartoffel Karl".
Wie und mit welchen Datenbanken kann ich das am besten realisieren? Und das am allerbesten noch als Cloudinstallation?
So, wie es in der GeoDjango Dokumentation steht, kommen folgende DB-Erweiterungen infrage:
- PostGIS
- SpatiaLite
- GEOS
Dann kann man noch die entsprechende Google Projektion dazuinstallieren.
Und jetzt sind wir an dem Punkt, wo ich nicht mehr weiterkomme:
1) Grundsätzlich ist mir unklar, was das Besondere an Geodaten ist. Warum kann ich Längen- und Breitengrade nicht ganz einfach in Tabellen eintragen wie andere Daten auch?
2) Wie bringe ich das Ganze in Verbindung mit einem der gängigen Web-Kartendienste, also Google Maps oder Bing Maps oder Openstreetmap?
3) Im Grunde könnten die Pommesbuden im Beispiel ja auch direkt in den jew. Kartendienst eingetragen und die Jarte dann einfach eingebunden werden. Wo liegt jetzt hier mein Denkfehler?
4) Und iwe harmonieren die Sachen mit Djangos ORM?
Damit die Probleme nicht so schnell behoben sind, kommt jetzt noch der Extrawunsch: am liebsten soll das ganze als Cloudinstallation realisiert werden. Googelt man, findet man viele private Anbieter mit speziellen Dienstleistungen dazu- aber wenige freie (keine?) Lösungen.
Da Googles App Engine netterweise bereits eine Djangoinstallation bereithält, wäre es natürlich schön, wenn dann auch die Geodaten dort untergebracht werden könnten. Das sieht, nach meiner bisherigen Recherche wenigstens, nicht so toll aus. Es gibt nur eine GIScloud, die aber nur auf Java läuft.
Wie bekomme ich das alles zusammen?
Danke schonmal im Voraus!