HBUMNMapServer ger Capter Formate

= Unterstützte Formate = (1)

Wenn wir die Frage beantworten wollen, mit welchen Dateiformaten MapServer umgehen kann, müssen wir die Unterscheidung in lesbare und schreibbare Formate treffen. In bisherigen Versionen war MapServer stark eingeschränkt, was die Ausgabeformate betrifft; das hat sich mit dem Erscheinen von MapServer 4.0 und der dortigen Unterstützung beispielweise für PDF- und Flash-Output stark geändert.

Im folgenden sollen alle Formate\footnote{Alle dem Autor bekannten zumindest ...} aufgezählt werden, die der MapServer zumindest theoretisch lesen und schreiben kann. Die Einschränkung =theoretisch= wird deshalb gemacht, weil sich die Möglichkeiten aus verschiedenen Gründen unterscheiden können. Neben der in vielen Fällen notwendigen Installation von zusätzlichen Bibliotheken kann auch schon das Betriebssystem den Ausschlag geben, wenn ein Hersteller beispielsweise eine Bibliothek nur für ein bestimmtes OS zur Verfügung stellt.

Der Großteil aller zusätzlichen Formate wird durch die Bibliothek GDAL bzw. OGR in MapServer realisiert. Die Notation der Formate kann an dieser Stelle nicht voller Breite erfolgen; konsultieren Sie die entsprechenden Abschnitte in Kapitel~\ref{text:mapfile} für Beispiele, oder das Archiv der MapServer-Mailingliste für weitere Hinweise.

Wann immer es dem Autor gelungen ist, Beispieldaten aus dem Web im jeweiligen Format aufzutreiben, gibt es einen Verweis auf die entsprechende Webseite. Beachten Sie bitte, dass Sie selber prüfen müssen, zu welchen Zwecken Sie diese Daten verwenden dürfen. Falls Sie sich selber auf die Suche nach Beispieldaten machen wollen, ist die Seite 'Geo-Data' des FreeGIS-Projektes~http:website:freegisdata ein guter Startpunkt.

=Lesbare Formate=

Wenn man MapServer wirklich ohne jede zusätzliche Optionen kompiliert, bekommt man zumindest die Unterstützung für die folgenden Formate mit:


 * ESRI Shapefile \index{Shapefile}\index{Formate!Shapefile}: Ein simples Vektorformat ohne Topologien und ähnlichen Schnickschnack. Es handelt sich um ein dokumentiertes, binäres Dateiformat~pdf:spec:shapefile.   MapServer bedient sich für dieses Format der Bibliothek shapelib, die jedoch nicht im System installiert sein muß, da der MapServer-Quelltext eine eigene Kopie davon enthält.    Beispieldaten im Shapefile-Format bekommen Sie bei praktisch jedem handelsüblichen GIS-System mitgeliefert, und selbstverständlich auch bei den MapServer-Demos (siehe Seite~\pageref{text:demos}).
 * EPPL7 \index{EPPl7}\index{Formate!Shapefile}: Diese Abkürzung steht für Environmental Planning Programming Language, welches der Name eines recht alten, voll programmierbaren GIS ist. Da es seinen Ursprung in den Tiefen von Minnesota hat, wird dieses Rasterdateiformat heute noch von MapServer unterstützt.   Beispieldaten sind unter anderem von der Website des Land Management Information Center Minnesota~http:website:lmicmn herunterladbar.

GD
Diese Bibliothek ist weiterhin das graphische Backend für MapServer. Mit der GD können Sie diverse 'simple', weit verbreitete Rasterformate einlesen, solange sie georeferenziert sind. Je nach der Art der Installation von GD in Ihrem System umfaßt das TIFF, JPEG und PNG. Die Georeferenzierung solcher Dateien erfolgt über die üblichen Worldfiles.

Räumliche Datenbanken
MapServer kann Vektordaten aus diversen räumlichen Datenbanken lesen.


 * ESRI ArcSDE ist die räumliche Datenbank aus dem Hause ESRI. Hinter jeder ArcSDE-Installation sitzt übrigens eine Datenbank eines anderen Herstellers; insbesondere Oracle wird man dabei häufig antreffen.    Mangels eines Testsystems ist der Autor leider nicht in der Lage, detaillierte Angaben zur Anbindung an diese Datenbank zu machen. Deshalb sei an dieser Stelle auf das Archiv der MapServer-Mailingliste verwiesen.
 * Oracle Spatial Database ist eine räumliche Erweiterung der bekannten Datenbank von Oracle, die im wesentlichen als Grundlage für location based services  propagiert wird.      Mangels eines Testsystems ist der Autor leider nicht in der Lage, detaillierte Angaben zur Anbindung an diese Datenbank zu machen. Deshalb sei an dieser Stelle auf das Archiv der MapServer-Mailingliste verwiesen.
 * PostGIS ist eine räumliche Erweiterung für die freie Datenbank PostgreSQL. Zu PostGIS finden Sie in diesem Buch einen eigenen Abschnitt ab Seite~\pageref{text:database:postgis}.

Insbesondere werden Oracle und ArcSDE (PostGIS noch nicht vollständig) den Vorgaben des OGC-Standards mit dem Namen Simple Features for SQL gerecht, sodass Sie diese Systeme nicht nur über MapServer ansprechen können, sondern selber Applikationen entwickeln können, die mit ihnen über diese standardisierte Schnittstelle reden.

Rasterformate mit GDAL
Mit dieser Bibliothek können diverse Rasterformate eingelesen und als Layer dargestellt werden. Beachten Sie dabei immer, dass es in vielen Fällen noch zusätzliche Bibliotheksabhängigkeiten gibt, die erfüllt sein müssen. Einige dieser Abhängigkeiten können für bestimmte Betriebssysteme nicht zur Verfügung stehen und/oder unfrei sein und sogar die Aufwendung zusätzlicher Lizenzgebühren erfordern, siehe Abschnitt~\pageref{anhang:formats:mrsid}.

FIXME

Vektorformate mit OGR
FIXME

=Schreibbare Formate=

Bisher können nur Rasterformate ausgeliefert werden; namentlich:


 * JPEG
 * PNG
 * GIF
 * WBMP (meist als Option für OGC-konforme MapServer vorhanden)

Diese Limitierung soll jedoch (siehe den einführenden Text in diesem Kapitel) mit folgenden Versionen obsolet werden.

=Nicht unterstützte Formate=

Diese Überschrift sieht etwas endgültig aus. Man kann von einem Projekt Freier Software sagen, dass ein heute nicht unterstütztes Format morgen vielleicht schon ein Posting auf der Mailingsliste provoziert, das dazu führt, dass sich übermorgen jemand um eine Unterstützung kümmert.

Generell kann man sagen, dass es zwei Gründe geben kann, dass sich noch niemand um eine Unterstützung für ein bestimmtes Dateiformat gekümmert hat. Die eine Variante ist, dass das Format proprietär ist, was meistens bedeutet, dass eine Dokumentation nicht öffentlich zugänglich ist und das Format somit unter (meist erheblichem) Arbeitsaufwand durch reverse engineering analysiert werden muß. Dieses Vorgehen hat -- besonders bei binären Formaten -- den Nachteil, dass eine vollständige Umsetzung beinahe unmöglich ist, da man immer wieder auf Teile in den zur Verfügung stehenden Beispieldaten treffen wird, deren Funktion sich nicht erschließt. Die andere Möglichkeit ist, dass der Hersteller eine Dokumentation nur gegen Lizenzgebühren und/oder ein non disclosure agreement \footnote{Also eine Vereinbarung, dass keine Informationen über den Inhalt der Spezifikation öffentlich gemacht werden.} herausgibt. Beide Wege sind aus offensichtlichen Gründen für ein Freies Softwareprojekt nicht gangbar.

Mit anderen Worten: proprietäre Formate sind immer schlecht. Insbesondere für Freie Software.

Anders sieht die Sache bei offenen Formaten aus. Falls ein offenes und dokumentiertes Format nicht von MapServer unterstützt wird, heißt das einfach, dass sich noch niemand darum gekümmert hat. Falls Sie ein Format dringend benötigen, kann Ihre Stunde schlagen, etwas zum Projekt beizutragen, indem Sie den entsprechenden Code selber schreiben und den Entwicklern zur Ansicht vorlegen, damit er offiziell in das Projekt einfließt; oder aber, indem Sie jemanden dafür bezahlen, eben dies zu tun.

Für diverse Formate gibt es immer wieder Anfragen auf der MapServer-Mailingliste. Hier einige davon, zusammen mit diversen Anmerkungen:


 * MrSID (2) Eine Art der Bildkompression, an der die Firma Lizard Tech die Rechte hat, und das nicht öffentlich dokumentiert ist.   Bis vor kurzem unterstützte MapServer dieses Format nicht. Es kam jedoch ein Vertrag zwischen Firmen zustande, Unterstützung für MrSID in die GDAL-Bibliothek einzubauen, sodass MapServer jetzt auch dieses Format lesen kann -- zumindest unter gewissen Umständen.    Zuerst einmal benötigen Sie eine sehr aktuelle Version von GDAL. Darüberhinaus benötigen Sie immer noch eine Kopie des MrSID Entwickler-SDK für ihr jeweiliges Zielbetriebssystem. Es dürfen nämlich keine fertig kompilierten Binaries von GDAL mit MrSID-Unterstützung vertrieben werden; das Kompilieren müssen Sie selber übernehmen. Als ob das nicht genug wäre, müssen Sie beispielsweise auch noch beachten, dass die Version des verwendeten Compilers für alle beteiligten Komponenten identisch ist; und so weiter. Das genaue Vorgehen ist jetzt in der entsprechenden GDAL-Dokumentation zu finden.    Wie Sie sehen können, kann proprietäre Software den Einsatz zusammen mit Freier Software ungemein verkomplizieren.
 * AutoCAD DXF Wird immer wieder nachgefragt, insbesondere für das Einlesen. Vor einiger Zeit wurde angekündigt, dass Unterstützung für die Ausgabe  eingearbeitet werden würde, sodass man sich hier also bald darauf einstellen kann, dass MapServer den reichlich vorhandenen Datenbeständen in diesem Format einiges hinzufügen wird.
 * SVG Ein XML-basiertes Format, nach dem regelmäßig auf der MapServer-Mailingliste gefragt wird. Bisher hat sich noch niemand die Mühe einer Implmentierung gemacht; siehe auch Seite~\pageref{text:mapfile:output:vector} für mehr Details über Vektorformate in MapServer.    Dieses Format zeigt die andere Seite Freier Softwareentwicklung; obwohl es einen definierten Standard für das Format gibt, und obwohl Plugins für diverse Browser existieren, gibt es noch keine Unterstützung für SVG.

Falls das Ihnen zur Verfügung stehende Dateiformat nicht direkt unterstützt wird, existiert darüber hinaus natürlich immer noch die Alternative, die Daten mit entsprechenden Werkzeugen in ein Format zu überführen, das von MapServer verstanden wird. Dabei ist dann zu beachten, dass diverse Eigenschaften bei der Konvertierung verloren gehen können. Beispielsweise ist in einem Shapefile keine Information über die farbliche Gestaltung von Features zu finden, und auch keine Topologie.