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.
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:
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.
Laden Sie den Rasterlayer landcover.tif, indem Sie auf das Icon Rasterlayer hinzufügen klicken.
Fügen Sie den Vektorlayer lakes.gml, majrivers.shp und airports aus dem QGIS Beispieldatensatz hinzu, indem Sie das Icon Vektorlayer hinzufügen verwenden.
Ändern Sie die Farben und Beschriftung nach ihren Wünschen (siehe Abbildung figure_mapserver_export_1)
Speichern Sie das neue Projekt unter dem Namen mapserverproject.qgs im Menü File ‣ Projekt speichern als.
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:
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):
Klicken Sie auf das Icon MapServer Export.
Geben Sie als Kartendatei qgisproject.map für die neue Map-Datei an.
Geben Sie als QGIS Projektdatei die gerade erstellte Datei mapserverproject.qgs an.
Geben Sie den Namen MyMap für die Karte an.
Geben Sie als Breite 600 und als Höhe 400 an.
Die Layer sind in Meter, also ändern wir die Einheit in Meter.
Wählen Sie png als Bildtyp.
Klicken Sie auf [OK], um die neue Map-Datei qgisproject.map zu erstellen. QGIS zeigt an, dass es erfolgreich.
Figure Mapserver Export 3:
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.
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
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:
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.