HBUMNMapServer ger Capter 5

From OSGeo
Jump to: navigation, search

Demos

\index{Demos}(1)

Um einen ersten Eindruck vom MapServer zu bekommen, gibt es Demo-Applikationen. Eine nicht unerhebliche Anzahl von Anfragen auf der Mailingliste bezieht sich auf das Einrichten der Demos; es scheint also nicht ganz trivial zu sein.

Um einen reibungslosen Einstieg zu erleichtern, gebe ich hier -- soweit möglich -- eine Schritt-für-Schritt-Anleitung, damit Sie die Demos so schnell wie möglich ausprobieren können. Im wesentlichen handelt es sich um kleine Eingriffe in die Mapfiles bzw. die Templates der Anwendung, also Dinge, die sich mit einem beliebigen Texteditor schnell und einfach erledigen lassen.

Es wird aber davon ausgegangen, dass Sie bereits eine laufende MapServer-Installation haben; dass Sie also das Binary in das entsprechende =cgi-bin= -Verzeichnis im Webserver kopiert haben, und dass ein Aufruf wie in Abschnitt~\ref{text:mapfile:cgi} beschrieben, die zu erwartende Fehlermeldung produziert.

=Itasca=\index{Itasca}\index{Demos!Itasca}(2)

Itasca County ist Teil des Bundesstaates Minnesota, hat etwa 43000 Einwohner, die in 16 Städten und 42 Townships leben, und muß vor allen Dingen seit Urzeiten als typisches Demo für den MapServer herhalten. Sie können es als Paket von der MapServer-Website herunterladen. Lassen Sie sich dabei vom Dateinamen =itasca3.5.tar.gz= nicht irritieren, diese Fassung ist für MapServer 4.0 immer noch aktuell.

Die Schritte, die nun zu unternehmen sind, sind die folgenden:


  1. Archiv entpacken
  2. Temporäres Verzeichnis anlegen
  3. Zugriffsrechte anpassen
  4. Initialisierungsseite editieren
  5. Konvertieren der GIF-Symbole (optional)


\subsubsection*{Entpacken und Verzeichnisse setzen}

Entpacken Sie die das Archiv in das =htdocs= -Verzeichnis Ihres Webservers, unter Linux beispielsweise so:


# tar -xzvf itasca3.5.tar.gz


Legen Sie nun, ebenfalls im =htdocs= -Verzeichnis, ein Unterverzeichnis =ms_tmp= an. Dieses Verzeichnis wird von MapServer dazu benutzt werden, um die erzeugten Bilder zwischenzuspeichern.

Nun sollten die Zugriffs- bzw. Besitzrechte korrekt gesetzt werden. Die Demo-Dateien sollten auf den meisten Systemen dem Benutzer =root= gehören, während das Verzeichnis für die temporären Dateien von dem Benutzer beschreibbar sein muß, unter dem der Webserver läuft. Unter Debian Linux ist das beispielsweise =www-data= . Das Setzen der Rechte könnte also zum Beispiel so aussehen:

(3)

# chown -R root.root itasca/
# chown www-data.root itasca/


\subsubsection*{Dateien editieren}

Die restliche Arbeit besteht nun darin, die Startseite des Demos anzupassen. Dazu müssen Sie die Dateien jeweils in einem Texteditor Ihrer Wahl öffnen. Unter Windows könnte das beispielsweise =notepad= sein, unter Linux emacs oder vim.

Öffnen Sie zuerst die Startseite des Demos mit dem Namen =demo_init.html= . Die Zeilen, die Sie wahrscheinlich anpassen möchten, sind:


  • =<form method=GET action="{= /cgi-bin/mapserv"{}>}\\ Hier setzen Sie das zu verwendende MapServer-Binary. Dieser Eintrag stimmt höchstwahrscheinlich schon.
  • =<input type="{= hidden"{} name="{}map"{} value="{}..."{}>}\\ Wo hier die drei Punkte gesetzt sind, geben Sie den vollständigen Pfad zum Mapfile an. Unter Windows beinhaltet das die Angabe des Laufwerks, also zum Beispiel =c:= .
  • =<input type="{= hidden"{} name="{}program"{} value="{}/cgi-bin/mapserv"{}>}\\ Hier setzen Sie noch einmal den gleichen Wert wie beim ersten Punkt in dieser Aufzählung. Ist in den meisten Fällen bereits korrekt.
  • =<input type="{= hidden"{} name="map_web_imagepath"{} value="{}..."{}>}\\ Wo hier die drei Puntke gesetzt sind, geben Sie den vollständigen Pfad zum temporären Verzeichnis an, dass Sie weiter oben erzeugt haben.
  • =<input type="{= hidden"{} name="{}map_web_imageurl"{} value="{}/ms_tmp/"{}>}\\ Hier geben Sie den URL des temporären Verzeichnisses an. Wenn Sie das Verzeichnis wie oben beschrieben in =htdocs= angelegt haben, reicht hier =/ms_tmp/= aus.

\subsubsection*{GIF-Symbole konvertieren}

Dieser Schritt ist optional. Er muß nur dann unternommen werden, wenn Ihr MapServer keine GIF-Unterstützung beinhaltet. Wenn Sie vorkompilierte Binaries unter Windows benutzen, haben Sie GIF-Unterstützung und können diesen Schritt auslassen. Sobald Sie aber aktuellen Quellcode beispielsweise unter Linux selber kompiliert haben, müssen Sie die GIF-Symbole konvertieren und sie in das Mapfile aufnehmen.

Am schnellsten geht die Konvertierung mit dem Werkzeug ImageMagick ~http:website:imagemagick, das heutzutage jeder Linux-Distribution beiliegt und auch für Windows zu haben ist.

Wechseln Sie in das Verzeichnis =symbols= des Demos und führen dort folgendes aus:


# mogrify -type png *.gif


Die Referenzkarte im Unterverzeichnis =graphics= muß auf die gleiche Weise konvertiert werden.

Nun müssen im Mapfile noch alle Verweise auf GIF-Symbole geändert werden. Das können Sie natürlich von Hand machen, oder mit der Funktion 'Suchen und Ersetzen' in Ihrem Editor. Es kann unter Linux aber beispielsweise auch so geschehen:


# sed -e 's/gif/png/' demo.map > tmp~ && mv tmp~ demo.map


=GMap=\index{GMap}\index{Demos!GMap}(4)

\begin{figure} \begin{center} \mmfig{0.75}{gmap}{Das kanadische GMap-Demo} \end{center} \end{figure}

Dieses Demo stammt von der kanadischen Firma DM Solutions, die einen erheblichen Einfluß auf die Entwicklung des MapServers hat. Von ihrer Website~http:website:dmsolutions läßt sich ein Paket mit dem Namen =gmap-ms3.6.tar.gz= herunterladen. Stören Sie sich nicht an der Versionsnummer; das ganze funktioniert hervorragend mit MapServer 4.0.

Für GMap muß PHP MapScript installiert sein. Dieser Vorgang wird hier nicht detailliert beschrieben, das passiert allerdings im Anhang ab Seite~\pageref{anhang:compile:mapscript:php}. Einen Screenshot des funktionierenden Demos können Sie in Abbildung~\ref{gmap}.

Die folgenden Schritte müssen Sie für das korrekte Funktionieren des Demos unternehmen:


  1. Auspacken des Archivs
  2. Zugriffsrechte setzen
  3. Anpassen der PHP-Seite(n)
  4. Konvertieren der GIF-Symbole (optional)


\subsubsection*{Entpacken und Zugriffsrechte}

Begeben Sie sich in das =htdocs= -Verzeichnis Ihres Webservers und entpacken Sie das Archiv, unter Linux beispielsweise folgendermaßen:


# tar -xzf gmap-ms3.6.tar.gz


Passen Sie dann noch die Besitzrechte für das neue Verzeichnis an:


# chown -R root.root gmap/


\subsubsection*{Anpassen der PHP-Seiten}

Die folgenden Änderungen werden, wie schon beim Itasca-Demo, ganz einfach mit einem Texteditor vorgenommen.

Zu Beginn der Datei =gmap75.phtml= finden Sie Zeilen, die prüfen, auf welchen Betriebssystem es sich befindet und in Abhängigkeit davon die MapScript-Bibliothek lädt. Unter Windows ist das eine Datei mit der Endung =.dll= , unter Linux mit der Endung =.so= . Wenn Sie beim Aufruf von


http://name.des.servers/gmap/htdocs/gmap75.phmtml


eine Fehlermeldung erhalten, dass MapScript nicht geladen werden konnte, ändern Sie den Namen der Bibliothek in den korrekten Wert. Beispielsweise wird es auf vielen Unix-Systemen passieren, dass die Zeilen


if (!extension_loaded("MapScript"))
    dl("php_mapscript_36.so");


geändert werden müssen in:


if (!extension_loaded("MapScript"))
    dl("php_mapscript.so");


Das ist insbesondere der Fall, wenn Sie aus den Quellen selberkompiliert haben, da die Datei dann nicht so heißt, wie von GMap ursprünglich erwartet.

Als nächstes muß noch das Mapfile angepaßt werden. Falls Sie den Schritten für das Itasca-Demo weiter oben gefolgt sind, und das Verzeichnis für temporäre Pfade wie auf Seite~\pageref{text:demos:itasca:temp} beschrieben anglegt haben, müssen Sie in =gmap75.map= die Zeile für den =IMAGEPATH= geändert werden; dort steht dann


IMAGEPATH "/.../ms_tmp/"


wobei die drei Punkte für den kompletten Pfad zum temporären Verzeichnis im System stehen und dementsprechend von Ihnen ausgefüllt werden müssen.

\subsubsection*{Konvertierung der GIF-Symbole}

Falls Ihre MapServer-Installation nicht mit GIF-Dateien umgehen kann (siehe auch weiter vorne in der entsprechenden Sektion zum Itasca-Demo), müssen Sie noch die Referenzkarte =keymap.gif= im Unterverzeichnis =htdocs/images= in ein PNG-Bild konvertieren, und den Verweis auf das Bild im Mapfile abändern.

Die Konvertierung kann wieder mit ImageMagick geschehen:


# convert keymap.gif keymap.png


Der Verweis auf die Referenzkarte im Mapfile heißt dann:


REFERENCE
  IMAGE "images/keymap.png"
  ...


\subsubsection*{Der Java-Modus}

Sollten Sie nun immer noch kein Bild in Ihrem Browser zu sehen bekommen, liegt es daran, dass GMap grundsätzlich im Java-Modus startet, Sie aber kein Java-Plugin in Ihrem Browser installiert haben. In diesem Fall können Sie mit einem Klick auf das Java-Symbol in der linken unteren Ecke in den 'reinen' HTML-Modus schalten.