PostgreSQL/ PostGIS/ PHP für SVG-Ausgabe ausreichend?

Mal wieder hallo zusammen,

nach meinen Problemen mit der PostGIS-Installation vor ein paar Wochen habe ich mir inzwischen nun sogar schon den MapServer installiert. :slight_smile: Doch ich bin noch immer etwas rat- und planlos, was die server- und client-seitigen Software-Komponenten angeht, die ich für mein geplantes Web-Mapping-/ Routing-Projekt benötigte/ einsetzen sollte und hoffe dazu auf ein paar hilfreiche Anregungen von Euch, auch wenn das Thema dadurch natürlich stark über PostGIS hinausgeht …

1. Im Moment stelle ich mir noch vor, dass ich am liebsten SVG ausgeben möchte, um darauf mit Ecmascript aufbauend Manipulationen/ Animationen am DOM vornehmen zu können. Nun bin ich zufällig darüber gestolpert, dass PostGIS sogar selbst schon nach SVG konvertieren kann. Benötige ich denn dann überhaupt noch MapServer? Wohl höchstens zum Kacheln der angeforderten Kartenausschnitte, oder lässt sich evtl. sogar das mit PostGIS-Bordmitteln bewerkstelligen?

2. Und falls ich insofern vielleicht wirklich auf den MapServer verzichten kann, komme ich denn allein mit PostgreSQL/ PostGIS/ PHP auch dann noch aus, wenn ich clientseitig OpenLayers einsetzen will? Ich will natürlich keinen unnötigen Overhead - auf dem Server wie auf dem Client - erzeugen, mir andererseits aber auch nicht zu viele Gedanken über Probleme machen müssen, die in open source verfügbaren Komponenten vielleicht schon gelöst wären.

3. Lässt sich OpenLayers eigentlich grundsätzlich auch mit SVG-Maps verwenden? Ein Problem könnte hierbei vielleicht sein, dass ich nach Möglichkeit eben nicht - wie es ja bei Rastergrafiken erforderlich wäre - mit jedem Zoom eine komplette neue SVG-Datei anfordern, sondern allenfalls bestimmte Details in das bereits angezeigte Dokument hinzu- oder aus diesem herausladen und darüber hinaus Manipulationen per Ecmascript durchführen möchte.

4. Lohnt eigentlich auch ein Blick auf Mapbender als Alternative zu OpenLayers? Sind beide für die Darstellung der Karten - ob nun direkt von PostGIS oder von MapServer oder von Mapnik etc. ausgegeben - gleichermaßen geeignet?

Wäre schön, wenn Ihr mir ein paar Ratschläge als Einstiegshilfe geben könntet, da ich im Moment doch noch ziemlich schwimme bzw. eher in der Informationsflut ertrinke … :confused:

Vielen Dank und schöne Grüße,
Frank

Guten Morgen!

SVG ist ein Format, der Mapserver ein Webservice. Du brauchst den WMS um die Nutzereingaben der Kartenposition etc oder Datenabfragen zu verarbeiten. Statische Bilder/karten könntest du ggf. mit Javascript der Datenbank entlocken. Da ist aber der WMS weit komfortabler.

Openlayers ist eine Javascript-API die eigentlich genau das obige macht. AFAIK bündelt sie aber auch Webservices, also kommst du um einen serverseitigen Dienst kaum herum, zumindest find ich günstig, das ich dann die Wahl habe, wo ich meine Daten einbinde, denn der Aufruf erfolgt nur über die URL. Ich hab aber schon eine Weile nichts mehr mit OL gemacht, da ist einiges passiert in letzter Zeit.

Wie gesagt, das könnte der WMS für dich machen. AFAIR nutzt openlaysers auch AJAX-Techniken und TiledMapServices, um nur das zu ändern oder zu laden was benötigt wird. Im Kartenlink in meiner Sig kannst mein kleines Openlayers-Kärtchen mal probieren und schauen wie das arbeitet. Ist allerding ggef etwas langsam, weil die DB auf nem virtuellen Server sitzt.

Wir setzen zur Zeit viel Mapbender ein, weil er für kompelxe Anforderungen besser geignet ist. OL hat den Vorteil, das du weniger Aufwand treiben mußt, dafür mußt du Dinge wie die Einbettung, Userverwaltung etc selbst basteln (was nicht nachteilig sein muß!), aber OL wird zunehmend von Templateengines unterstützt, so das das auch einfacher wird, dagegen bring Mapbeder sozusgen seine eigenen Templates mit.
Leider darf ich dir keine Beispiele unserer Mapbenderkarten zeigen, aber da geht schon mehr, als Beispiel könntest du das Geoportal RheinlandfPfalz besuchen, das ist ein typisches Mapbender-Portal. Vor allem lies es sich problemlos in user CMS einbinden, was bei OL nicht der Fall war. Das sind jetzt nur ein paar Hinweise, wir nutzen eigentlich beides, je nach Projekt und dem jeweiligen Umfeld. OL wird aber durch die baldige Verwendung von Geodjango, das das einbindet, hier auch wieder zunehmen.

Aber gern doch, einfach fragen :slight_smile:

Grüssle Uwe

Hallo Uwe, danke für Deine nette und ausführliche Antwort!

Das klingt dann ja wirklich auch für meine Zwecke nach dem Dramteam schlechthin.

Lässt sich konkret sagen, was mit OpenLayers nicht geht, wo seine Grenzen liegen? Dann würde mir die Wahl etwas leichter fallen. Denn ich weiß im Moment ja tatsächlich noch nicht, wo die Reise bei mir hingehen soll. Theoretisch denkbar wäre für meinen Anwendungszweck durchaus, dass ich einmal verschiedene Dinge auch dynamisch auf meiner Karte visualisieren können will.

Im Moment träume ich sogar davon, bestimmte Verkehrsbewegungen zu animieren. Dazu bräuchte ich dann neben der vom MapServer zurückzuliefernden Kartengrafik wohl auch noch ein paar Straßenkoordinaten, mit denen ich meinen darüber zu legenden Animationslayer deckungsgleich bekommen kann. Ist so etwas mit beiden Frontends grundsätzlich vorstellbar? Oder sind meine Vorstellungen überhaupt völlig abwegig?

Hierin würde ich sogar eher einen Nachteil von Mapbender sehen, da ich meine Userverwaltung ja auch noch für andere Dinge als den eigentlichen Kartendienst benötige, oder ließe sich Mapbender da auch flexibel anpassen?

Das kenne ich natürlich schon, sieht auch sehr schick aus, auch wenn ich die Benutzerführung doch als etwas sperrig empfand, aber das lag sicher auch einfach an der Komplexität der Möglichkeiten.

Im Nachhinein bin ich nun auch noch darüber gestolpert, dass MapServer ja sogar Flash ausgeben kann. Was haltet Ihr davon als Alternative zu SVG? Oder lässt sich das nicht vergleichen? Ich habe bisher kaum Erfahrung mit Flash, aber immerhin blieben hier ja auch die Grafik-Quelltexte verborgen und trotzdem könnte man vermutlich alle Vorteile von Vektorgrafiken ausschöpfen (Stichwort: client-seitige dynamische Manipulation mittels ActionScript), oder?

Danke und Grüße,
Frank

Naja, es hängt auch ein bisschen davon ab, welche Technologien den verwendet werden sollen. Mapbender ist halt PHP, das mag ich nicht so, deswegen nutze ich es halt als Kartenfrontend, das auf schnelle Weise meine Karten bereitstellt. Wir machen komplexe Karten im Bereich Georisiken und Baugrunderkundung für Kunden und zur Dokumentation, da ist die Navigation etc. notwendig. Mit Openlayers muß ich noch richtig warm werden, aber wenn ich meine Oberfläche eh selbst zusammenstricke und Komponenten wie Userverwaltung schon da sind, wie z.B. in Django, ist das sicher eine sehr gute Wahl, in unser Zope/Plone lies sich das halt nicht sauber einbauen. Und wie man die Navigationselemente verändernkann weiß ich auch noch nicht. Ansonsten sind die Sachen ja eigentlich schön gekapselt in Datenquelle/Webservice und Frontend.
Die User-Verwaltung von Mapbender ist bisher ein Standalone-Ding, aber es gab mal Bestrebungen in der Community, da einen Entwicklungsauftrag zu machen und eine LDAP-Anbindung programmieren zu lassen, leider hab ich das grad nicht mehr so im Auge. Wenn man PHP mag, kann man das aber sicher auch selbst machen, die Entwickler selbst sind auch recht nett und kompetent.
Wenn du Animationen als Ziel hast ist Flash sicher eine Alternative, es gibt da so ein Kartentool, kann dir aber nicht viel mehr rüber sagen, weil wir hier nur offene Standards verwenden :wink: . Eventuell könnte aber auch eine Push-Lösung wie Twisted oder so was für dich sein. Das eignet sich gut für dynamische und Echtzeitdaten.
Langer Rede, kurzer Sinn: es gibt n Möglichkeiten zum Ziel zu kommen. Ich denke, ein WMS mit Openlayers als Frontend dürfte erstmal gut passen. Du kannst ja später ohne Probleme das Frontend austauschen, wenn das nicht mehr reicht. :wink:

Grüssle mal

Uwe

Meinst Du den Webserver TwistedWeb? Der ist mir ja noch nie über den Weg gelaufen. Scheint auch, als gäbe es da noch überhaupt gar keine deutsche Community oder auch nur irgendwas auf Deutsch. Was in der englischsprachigen Wikipedia steht, klingt ja ganz interessant, aber lässt der sich denn auch so flexibel einsetzen wie bspw. Apache?

Nein, Twisted ist ein Python-Modul/-Webframework, mit dem sich zusammen mit Athena, einer Javascript(?)-API, bidirektionale Push-Services erstellen lassen. Damit kannst du z.B. in Echtzeit Daten in einen Browser schieben, ohne das der Client einen Request senden muß. Damit kann man auch ‘Animationen’ machen, z.B. mit Messdaten.
Bin da grad dabei mich damit zu befassen.

Grüssle Uwe

Klingt hochspannend, scheint eigentlich genau das Richtige für mich zu sein. Hab mich auch eben mal auf die Mailingliste gesetzt und werd mir das noch genauer ansehen. Kennst Du zufällig noch Tutorials oder deutschsprachige Quellen, wo man sich weiter informieren kann?

Danke und Grüße,
Frank

Nein, eigentlich nicht, aktuelle deutsche Seiten und Tutorials sind eher selten, mehr als die Seite kenn ich auch nicht. Aber ab und an taucht twisted auch in anderen Zusammenhängen auf, z.B. in der Serveradministration etc.

Grüssle Uwe