MapServer Export Plugin

Mit dem Plugin MapServer Export können Sie eine Map-Datei für den UMN MapServer erstellen. Dazu verwenden Sie QGIS, um die Layer im Kartenfenster zu arrangieren, zu beschriften und die Farben nach ihren Wünschen anzupassen und speichern das Ergebnis als QGIS Projekt ab.

Bemerkung

Aktuell funktioniert das Plugin nur, wenn Sie die ‘Old Symbology’ Einstellung in QGIS verwenden. Die ‘Neue Symbology’ wird noch nicht unterstützt.

Eine Projektdatei für das MapServer Export Plugin erstellen

Das MapServer Export Plugin verwendet eine gespeicherte QGIS Projektdatei und nicht die aktuell im Kartenfenster angezeigten Layer. Dies hat bereits häufiger zu Verwirrung geführt. Wie im weiteren Verlauf beschrieben, müssen Sie die Layer im Kartenfenster layouten und dann als Projekt abspeichern.

Figure Mapserver Export 1:

../../../_images/mapserver_export_qgis.png

Arrange raster and vector layers for QGIS project file nix

In diesem Beispiel wird in vier Schritten gezeigt, wie Sie zu dem Punkt kommen, an dem Sie die Map-Datei erstellen können. Wir verwenden dazu Raster- und Vektorlayer aus dem QGIS Beispieldatensatz Beispieldaten.

  1. Laden Sie den Rasterlayer landcover.tif, indem Sie auf das Icon mActionAddRasterLayer Rasterlayer hinzufügen klicken.

  2. Fügen Sie den Vektorlayer lakes.gml, majrivers.shp und airports aus dem QGIS Beispieldatensatz hinzu, indem Sie das Icon mActionAddNonDbLayer Vektorlayer hinzufügen verwenden.

  3. Ändern Sie die Farben und Beschriftung nach ihren Wünschen (siehe Abbildung figure_mapserver_export_1)

  4. Speichern Sie das neue Projekt unter dem Namen mapserverproject.qgs im Menü File ‣ mActionFileSave Projekt speichern als.

Eine Map-Datei erstellen

Das Programm msexport befindet sich im QGIS Programmordner und kann unabhängig von QGIS verwendet werden. Von QGIS aus müssen Sie das MapServer Export Plugin erst mit dem Plugin Manager laden (siehe Kern-Plugins laden).

Figure Mapserver Export 2:

../../../_images/mapserver_export_dialog.png

Export to MapServer Dialog nix

Kartendatei

Tragen Sie hier den Namen der Map-Datei ein, die erstellt werden soll. Sie können mit dem ‘Speichern unter’ Knopf auswählen, wo die Datei gespeichert werden soll.

QGIS Projektdatei

Geben Sie den kompletten Pfad zur QGIS Projektdatei (.qgs) an, die Sie exportieren möchten. Sie können mit dem ‘Durchsuchen’ Knopf nach der Projektdatei suchen.

Name

Ein Name für die Karte. Dieser Name wird als Prefix für alle durch den MapServer erstellten Karten verwendet.

Breite

Breite des Ausgabebildes in Pixeln.

Höhe

Höhe des Ausgabebildes in Pixeln.

Einheiten

Maßeinheiten für die Ausgabe.

Bildtyp

Bildformat, das vom MapServer erstellt wird

Vorlage

Kompletter Pfad zur MapServer Template-Datei, die mit der Map-Datei benutzt wird

Kopfzeile

Kompletter Pfad zur MapServer Header-Datei, die mit der Map-Datei benutzt wird

Fusszeile

Kompletter Pfad zur MapServer Footer-Datei, die mit der Map-Datei benutzt wird

Nur die QGIS Projektdatei ist nun notwendig, um eine Map-Datei zu erstellen. Es kann aber sein, dass diese nicht auf anhieb funktioniert, abhängig davon, was sie sich vorstellen. Auch wenn QGIS durchaus geeignet ist, eine Map-Datei zu erstellen, ist es häufig doch notwendig, die Map-Datei manuell nachzubearbeiten. man sollte es daher eher als eine Hilfe betrachten, um die Map-Datei nicht komplett neu erstellen zu müssen. Aber lassen Sie uns in einem Beispiel anschauen, wie man aus der gerade erstellten Projektdatei eine Map-Datei erstellt (siehe Abbildung Figure_mapserver_export_2):

  1. Klicken Sie auf das Icon mapserver_export MapServer Export.

  2. Geben Sie als Kartendatei qgisproject.map für die neue Map-Datei an.

  3. Geben Sie als QGIS Projektdatei die gerade erstellte Datei mapserverproject.qgs an.

  4. Geben Sie den Namen MyMap für die Karte an.

  5. Geben Sie als Breite 600 und als Höhe 400 an.

  6. Die Layer sind in Meter, also ändern wir die Einheit in Meter.

  7. Wählen Sie png als Bildtyp.

  8. Klicken Sie auf [OK], um die neue Map-Datei qgisproject.map zu erstellen. QGIS zeigt an, dass es erfolgreich.

Figure Mapserver Export 3:

../../../_images/mapserver_export_success.png

Export to MapServer Succesfull Dialog nix

Sie können sich die Map-Datei in einem Texteditor anschauen. Sie werden sehen, dass das Exportmodul alle Metadaten hinzugefügt hat, um die Map-Datei für WMS zu aktivieren.

Fehlerbehebung

Wenn Sie Fehlermeldung vom UMN Mapserver bekommen, wie:

loadSymbolSet(): Unable to access file. (./symbols/symbols.txt)

oder:

msLoadFontset(): Unable to access file. Error opening fontset ./fonts/fonts.txt.

Dann bedeutet es, dass das mapfile nach Schrift- und Symboldefinitionen sucht, aber die entsprechenden Dateien nicht findet.

Entweder kommentieren Sie die Zeilen mit den entsprechenden Namen im Mapfile (dies ist möglich, wenn Sie keine Beschriftungen oder Stile aus der Datei symboly.txt verwenden, oder erstellen Sie die fehlenden Dateien (siehe unten).

Die einfachste fonts.txt Datei (Arial wird im von QGIS erstellten mapfile verwendet) enthält folgende Zeile

# either relative to the map file or a full path:
arial /usr/share/fonts/truetype/msttcorefonts/arial.ttf

Die einfachste symbols.txt Datei enthält die Definition eines Kreises, der für Punktlayer verwendet wird

SYMBOLSET
    SYMBOL
    NAME "circle"
    TYPE ellipse
    FILLED true
    POINTS
    1 1
    END
    END
END

Testen der Map-Datei

Wir können unsere Arbeit jetzt testen.

Wenn das Mapfile von der mapserver CGI erreichbar ist können Sie eine der URLs auf dem erfolgreich Dialog.

Eine andere Option ist das Programm shp2img, um ein Bild des Mapfiles zu erzeugen. shp2img ist Teil der MapServer und auch der FWTools. Um ein Bild der Karte zu erstellen:

  • Öffnen wir eine Shell, damit wir das Programm shp2img aus der Kommandozeile starten können

  • Wenn die Map-Datei nicht im aktuellen Verzeichnis gespeichert wurde, wechseln Sie bitte in das entsprechende Verzeichnis mit der Map-Datei.

  • starten Sie shp2img -m qgisproject.map -o mapserver_test.png und schauen Sie sich das erstellte Bild mit einem Bildbetrachter an

Die Ausdehnung des Bildes ist exakt diejenige, die wir in der QGIS-Projektdatei abgespeichert haben. Und das erstellte PNG enthält alle Layer, die wir als QGIS-Projekt abgespeichert haben, außer den airport Symbolen.

Figure Mapserver Export 4:

../../../_images/mapserver_export_test.png

Test PNG created by shp2img with all MapServer Export layers nix

Das Mapfile verwenden

Wenn Sie vorhaben, die Map-Datei auch für WMS-Anfragen zu nutzen, dann brauchen Sie wahrscheinlich nichts weiter zu machen. Wenn Sie es als Kartenvorlage oder individuelle Oberfläche nutzen wollen, ist wahrscheinlich noch ein bischen manuelles Optimieren notwendig. Um zu sehen, wie einfach es ist, Karten aus QGIS ins Internet zu stellen, schauen Sie sich das 5-minütige Flashvideo von Christopher Schmidt an, auch wenn es auf einer älteren QGIS Version basiert.