Warum benötigen wir Mapserver / Geoserver, um Daten aus der räumlichen Datenbank dem Webbrowser zu präsentieren?

Antworten:

19

Die einfache Antwort ist, dass Sie sie nicht brauchen , aber es macht das Leben viel einfacher. Sie müssen eine Art Serverelement zwischen Ihrer Datenbank und dem Webbrowser haben: Sie können also entweder Ihren eigenen Server in PhP (oder Java oder was auch immer) schreiben und alle Unklarheiten der von Ihnen verwendeten Datenbank behandeln und die Überweisung sortieren Formate usw. und führen Sie das Debuggen und Testen durch. Oder Sie können auf den 131 Personenjahren stehen , die für die Entwicklung von GeoServer (oder den 53 Personenjahren von MapServer) aufgewendet wurden, und ab heute Nachmittag Karten bereitstellen.

Und das alles, bevor ich mit meinem Standard-Rant über Standards beginne und warum es eine gute Sache ist, wenn jeder, der den Standard implementieren kann, Ihre Karten in seinem Client ohne zusätzliche Codierung von Ihrer oder ihrer Seite konsumiert.

Ian Turton
quelle
1
Geoserver ist einfach zu installieren und zu implementieren - warum das Rad neu erfinden, wenn ein Produkt frei verfügbar ist? Ein Wort wäre "Kontrolle" über Daten, Projektion und Verteilung über einen Webbrowser
Mapperz
Wie würden Sie Ihre Daten sonst gestalten? (Ich habe über 30 Fragen wie diese, die ich Ihnen geben kann)
Ragi Yaser Burhum
6

Es kommt wirklich darauf an, was Sie mit den Daten tun müssen.

Wenn Sie beispielsweise nur Vektorpunkte über einer Basiskarte anzeigen müssen, können Sie ein sehr einfaches serverseitiges Skript (in Python, .NET, PHP) erstellen, um räumliche Daten aus Ihrer Datenbank zu veröffentlichen. Die Fähigkeit von PostGIS, GeoJSON zu bedienen, macht dies trivial.

Das Bereitstellen einzelner Funktionen als KML und das Erstellen von Begrenzungsrahmen kann auch mit einem einfachen Skript und einer Datenbank einfacher direkt gehandhabt werden. Vorgefertigte Tilecaches ermöglichen auch (möglicherweise) einfachere serverseitige Software wie TileStache .

MapServer oder GeoServer wären in diesen Fällen ein großer Aufwand für wenig Nutzen. Das Konfigurieren und Verwalten einer dieser Anwendungen und der damit verbundenen Abhängigkeiten ist mit einem enormen Aufwand verbunden - insbesondere, wenn Sie auf einem gemeinsam genutzten Server bereitstellen müssen oder nur eingeschränkten Zugriff haben.

Wie Ian erwähnt, bietet die Verwendung von Kartenserver-Software viele Vorteile. Der Hauptvorteil sind wahrscheinlich die kartografischen Optionen für die dynamische Anzeige von Daten. OGC-Standards, Projektionen, Attributabfragen, Legenden, Metadaten, Caching, Sicherheit, verschiedene Raumformate, verschiedene Bildformate, Druck usw. sind dann ebenfalls verfügbar.

geographika
quelle
Wollen Sie damit sagen, dass Sie einen einfachen Server schreiben können, der schneller (sicher und fehlerfrei) mit Postgis kommuniziert, als ich GeoServer entpacken kann, der auf Postgis verweist? Denken Sie daran, dass GeoServer auch GeoJSON bedienen kann.
Ian Turton
3
Angenommen, Sie haben ASP.NET oder einen Python-Webserver eingerichtet, dann sind es ~ 10 Codezeilen, um eine Funktion nach ID (zum Beispiel)
geographika
3

Mit einem Framework wie Geomajas können Sie die Features auch direkt aus der Datenbank abrufen und sie mithilfe von SVG / VML zum Rendern / Bearbeiten im Browser an den Browser senden. Es gibt auch ein Rasterisierungs-Plugin, das das Rasterisieren auf dem Server ermöglicht.

Joachim Van der Auwera
quelle