MapServer banner Home | Docs | Issue Tracker | FAQ | Download
en de es fr zh_cn it

Einführung zum MapServer

Revision:$Revision: 8478 $
Date:$Date: 2009-01-29 20:54:42 +0100 (Do, 29. Jan 2009) $
Author:Jeff McKenna
Contact:jmckenna at gatewaygeomatics.com
Author:David Fawcett
Contact:david.fawcett at moea.state.mn.us
Author:Howard Butler
Contact:hobu.inc at gmail.com

MapServer Überblick

MapServer ist ein weit verbreitetes Open Source Projekt, dessen Hauptanwendung darin besteht dynamische Karten über das Internet anzuzeigen. Einige wesentliche Merkmale sind:

  • Unterstützung für Anzeige und Abfrage von hunderten Raster-, Vektor- und Datenbankformaten
  • Unterstützung von verschiedenen Betriebssystemen (Windows, Linix, Mac OS X, etc.)
  • Unterstützung für Skriptsprachen und Entwicklungsumgebungen (PHP, Python, Perl, Ruby, java, .NET)
  • on-the-fly Projektion
  • hochqualitatives Rendering
  • individuell anpassbare Ausgabe
  • viele “schlüsselfertige” Open Source Anwendungsumgebungen

Grundlegend betrachtet ist MapServer ein CGI programm, das inaktiv in einem Webserver eingebunden ist. Wird eine Anfrage an MapServer geschickt, werden Parameter der Anfrage-URL und Einstellungen des Mapfile benutzt um ein Bild zu erstellen. Es können auch Bilder für Legenden, Maßstabsleisten, Übersichtskarten und Werte aus CGI Variablen abgefragt werden.

Siehe auch

Das Glossary enthält viele der in diesem Dokument benutzten Fachausdrücke.

MapServer kann durch MapScript oder templating erweitert und angepasst werden. Er kann mit unterstützung für viele verschiedene vector und raster Formate übersetzt werden. Außerdem wird eine Vielzahl von output Formaten unterstützt. Viele vorkompilierte MapServer-Distributionen enthalten fast alle unterstützten Funktionen.

Bemerkung

MapScript stellt ein Scripting-interface für MapServer zur Verfügung mit dem Web- und Stand-alone-Anwendungen realisiert werden können. MapScript kann unabhängig vom CGI MapServer benutzt werden. Es kann als Modul für verschiedene Skriptsprachen geladen werden. MapScript unterstützt derzeit ref:PHP <php>, Perl, Python, Ruby, Tcl, Java, und .NET.

Diese Anleitung dient nicht der detailierten Besprechung von MapScript. Für weiterführende Informationen siehe MapScript Reference.

Anatomie einer MapServer Anwendung

MapServer Basic Architecture

Die Basisarchitektur einer MapServer-Anwendung

Eine einfache MapServer-Anwendung besteht aus:

  • Mapfile - Konfigurationsdatei mit strukturiertem Text für die MapServer- Anwendung. Hier wird das Gebiet der Karte definiert, MapServer die Datenquellen bekannt gegeben und wo bzw. wie die Ergebnisse ausgegeben werden. Auch die einzelnen Layer werden hier definiert mit Angaben zur Datenquelle, Projektion und Ausprägung. Die Dateiendung muss .map sein, sonst erkennt MapServer die Datei nicht.

  • Geodaten - MapServer kann auf verschiedene Quellen von Geodaten zugreifen. Das Standardformat ist die ESRI Shapedatei. Viele andere Datenformate können benutzt werden. Dies ist beschrieben in `Adding data to your site`_.

  • HTML-Seiten - die Schnittstelle zwischen Benutzer und MapServer. Sie liegen normalerweise im Web-Root. In der einfachsten Anwendung kann MapServer ein statisches Kartenbild in eine HTML-Seite einfügen. Um die Karte interaktiv zu machen, kann das Bild in ein HTML-Formular gesetzt werden.

    CGI Programme sind ‘zustandslos’. Jede Anfrage ist neu und es kann nicht auf Daten vorheriger Anfragen zurück gegriffen werden. Deshalb müssen mit jeder Anfrage an MapServer auch Kontextinformationen gesendet werden. Welche Layer sind an, welcher Ausschnitt soll gezeigt werden, Anwendungsmodus, etc. sind solche Informationen. Sie werden entweder in versteckten HTML-Formularen oder als URL-Variable übergeben.

    Eine einfache MapServer CGI-Anwendung könnte zwei HTML-Seiten enthalten:

    • Initialisierungsdatei - benutzt ein HTML-Formular mit versteckten Variablen um die initiale Anfrage an MapServer zu schicken. Dieses Formular könnte auf eine eigene Seite gesetzt werden oder die initialen Informationen können als Variable in einer URL übergeben werden.

    • Templatedatei - steuert, wie die Karten- und Legendenausgaben von MapServer im Browser erscheinen. Werden MapServer CGI-Variablen benutzt, wird MapServer diese durch die entsprechenden Werte zur Laufzeit ersetzen, während die HTML-Seite zur Anzeige im Browser erstellt wird. Typische Werte sind z.B. der Kartenbildname, Name des Übersichtsbildes, die Kartenausdehnung. Durch das Template wird auch festgelegt, wie mit der MapServer-Anwendung interagiert werden kann.

      Siehe auch

      Templating

  • MapServer CGI - ist die Binärdatei bzw. ausführbare Datei, die alle Anfragen erhält und Bilder, Daten, usw. ausliefert. Sie wird in das cgi-bin- oder Skript-Verzeichnis des HTTP-Servers installiert. Der Webserver-Benutzer sollte Ausführungsrechte für dieses Verzeichnis haben. Aus Sicherheitsgründen sollte das Verzeichnis nicht das Dokument-Root-Verzeichnis sein. Die Datei heißt standardmäßig mapserv

  • HTTP-Server - liefert HTML-Seiten aus, die der Browser des Benutzers anfordert. Es wird ein einsatzbereiter HTTP- bzw. Web-Server benötigt, wie z.B. Apache oder Microsoft Internet Information Server, der auf der selben Maschine wie der MapServer läuft.

Systemanforderungen und Installationshinweise

Windows Installation

OSGeo4W ist ein neuer Windows-Installer der zum Installieren oder Aktualisieren von MapServer, Zusatzanwendungen und anderer Open Source GIS-Software benutzt werden kann. Die folgenden Schritte beschreiben, wie OSGeo4W benutzt wird:

  1. Download OSGeo4W http://download.osgeo.org/osgeo4w/osgeo4w-setup.exe

  2. Ausführen (Doppelklick) der .exe

  3. Auswahl von “Advanced”

    _images/osgeo4w-install-start.png

    Bemerkung

    Express bietet Optionen für Komplettpakete wie MapServer, GRASS und uDig. Advanced hingegen ermöglicht die Auswahl von Werkzeugen für die Kommandozeile, die in der Variante express nicht enthalten sind.

  4. Auswahl der zu installierenden Pakete

    _images/osgeo4w-install-next.png

    Bemerkung

    Ein Klick auf “Default” neben den Komplettpaketen (wie z.B. Web) installiert alle Unterpakete von Web. Ein Klick auf “skip” neben einem Paket (wie z.B. MapServer) wählt das Paket und alle seine Abhängigkeiten zur Installation aus.

  5. Der Installer lädt alle Pakete herunter.

    _images/osgeo4w-install-fetch.png
  6. Um Apache als Dienst einzurichten, muss die Datei apache-install.bat ausgeführt werden.

    Bemerkung

    Dieses Skript sollte in der “OSGeo4W Shell” gestartet werden. Auf dem Desktop befindet sich dafür eine Verknüpfung.

    Bemerkung

    Mit dem Skript apache-uninstall.bat kann der Dienst wieder entfernt werden.

  7. Starten des Apache von der OSGeo4W-Shell und Aufruf von http://127.0.0.1

    apache-restart.bat
    
    _images/osgeo4w-install-complete.png
  8. Überprüfen ob MapServer richtig installiert wurde

    _images/osgeo4w-install-verify.png

Hardwareanforderungen

MapServer läuft unter Linux, Windows, Mac OS X, Solaris und weiteren Betriebssystemen. Zum Übersetzen oder Installieren von benötigten Programmen, werden wahrscheinlich administrative Rechte benötigt. Fragen nach den Minimalanforderungen der Hardware können nicht pauschal beantwortet werden, da diese stark anwendungsabhängig sind. Für Entwicklungs- und Lernzwecke wird eine sehr einfache Maschine ausreichen. Für den produktiven Einsatz wird eine Optimization des gesamten Spektrums von den Daten bis zur Serverkonfiguration empfohlen.

Softwareanforderungen

Es wird ein einsatzbereiter und korrekt konfigurierter HTTP/Web-Server, wie z.B. Apache oder Microsoft Internet Information Server benötigt. OSGeo4W enthält bereits Apache, aber die Konfiguration kann auch an den IIS angepasst werden. Alternativ kann MS4W benutzt werden, um MapServer unter Windows zu installieren.

Für Windows kann das Paket MS4W benutzt werden um eine komplette Umgebung, mit vorkonfiguriertem HTTP-Server, MapServer und anderen Tools zu installieren. Der FGS Linux Installer bietet für diverse Linux-Distributionen die gleiche Funktionalität.

Die vorliegende Einleitung geht von der Verwendung vorkompilierter OSGeo4W-Windows-Binaries aus. Für Linux oder Mac OS X sollte dies analog funktionieren. Unter Download gibt es Installationsanleitungen für vorkompilierte Pakete für Mac OS X und Linux.

Benötigt wird außerdem ein Webbrowser und ein Texteditor (vi, emacs, notepad, homesite) zum Bearbeiten des HTML-Codes und des Mapfile.

Kenntnisse

Neben dem Erlernen, wie die verschiedenen Komponenten einer MapServer-Anwendung zusammen arbeiten und der Mapfile-Syntax ist ein gewisser Grad konzeptuellen Verständnisses und Kenntnisse in einigen anderen Bereichen erforderlich.

Es sollten mindestens Kenntnisse zum Bearbeiten von HTML-Seiten und der Funktionsweise von HTML-Formularen vorhanden sein. Der Haupteinsatzzweck einer MapServer-Anwendung stellt das Erzeugen von Karten dar. Deswegen sollten die Grundlagen von Geodaten und auch Kartenprojektionen nicht unbekannt sein. Für komplexere Anwendungen werden Kenntnisse von SQL, DHTML/Javascript, Java, Datenbanken, Ausdrücke, Kompilierung und Skriptsprachen sehr nützlich.

Einführung zum Mapfile

Durch das Mapfile werden die Datenquellen und das Styling für den MapServer konfiguriert. Die Datei ist eine ASCII-Textdatei und kann verschiedene Objekte enthalten. Jedes Objekt hat eine Vielzahl von Parametern. Alle .map-Datei (bzw. Mapfile) -Parameter sind in der Mapfile Referenz dokumentiert. Ein einfaches Beispiel eines Mapfile zur Darstellung eines Layers und das dazugehörige Kartenbild wird im Folgenden gezeigt:

NAME "sample"
STATUS ON
SIZE 600 400
SYMBOLSET "../etc/symbols.txt"
EXTENT -180 -90 180 90
UNITS DD
SHAPEPATH "../data"
IMAGECOLOR 255 255 255
FONTSET "../etc/fonts.txt"

#
# Start of web interface definition
#
WEB
    IMAGEPATH "/ms4w/tmp/ms_tmp/"
    IMAGEURL "/ms_tmp/"
END

#
# Start of layer definitions
#
LAYER
    NAME 'global-raster
    TYPE RASTER
    STATUS DEFAULT
    DATA bluemarble.gif
END
Rendered Bluemarble Image

Rendered Bluemarble Image

Bemerkung

  • Kommentare beginnen mit der Raute ‘#’
  • MapServer arbeitet das Mapfile von oben nach unten ab, Layer am Ende der Datei werden zum Schluß gezeichnet. D.h. sie werden auf alle vorherigen Layer gezeichnet.
  • Es sollten immer relative Pfade benutzt werden
  • Pfade sollten immer maskiert werden (einzelne oder doppelte Hochkommata werden akzeptiert)

MAP Object

MAP
    NAME                 "sample"
    EXTENT        -180 -90 180 90 # Geographic
    SIZE                  800 400
    IMAGECOLOR        128 128 255
END
  • EXTENT ist die Ausdehnung der Ausgabe in Karteneinheiten
  • SIZE ist die Breite und Höhe des kartenbildes in Pixel
  • IMAGECOLOR ist dir Standard-Hintergrundfarbe

LAYER Objekt

  • ab MapServer 5.0 gibt es keine Beschränkungen mehr für die Anzahl der Layer in einem Mapfile
  • DATA-Parameter ist relativ zum SHAPEPATH-Parameter im MAP-Objekt
  • Wird keine Dateinamenserweiterung angegeben, wird vom MapServer ein ESRI Shapefile (.shp) angenommen.

Rasterlayer

LAYER
    NAME bathymetry
    TYPE RASTER
    STATUS DEFAULT
    DATA bath_mapserver.tif
END

Siehe auch

Raster Data

Vektorlayer

Vektorlayer vom TYPE point (Punkt), line (Linie) oder polygon (Polygon) können dargestellt werden. Das folgende Beispiel zeigt wie nur die Linien eis Polygon-Layer dargestellt werden, in dem der Parameter OUTLINECOLOR benutzt wird:

LAYER
    NAME   "world_poly"
    DATA         'shapefile/countries_area.shp'
    STATUS       ON
    TYPE         POLYGON
    CLASS
        NAME       'The World'
        STYLE
            OUTLINECOLOR    0 0 0
        END
    END
END # layer

Siehe auch

Vector Data

Rendered Bluemarble Image

Rendered Bluemarble image with vector boundaries

CLASS und STYLE Objekte

  • Zur Ausprägung bzw. Styling werden CLASS und STYLE -Objekte innerhalb eines LAYER definiert
  • Ab MapServer 5.0 gibt es keine Beschränkung in der Anzahl der Klassen oder Styles eines Mapfiles.
  • Das folgende Beispiel zeigt die Ausprägung einer Straße mit zwei Farben, in dem STYLE-Objekte überlagert werden:
CLASS
NAME "Primary Roads"
STYLE
    SYMBOL "circle"
    COLOR 178 114 1
    SIZE 15
END #style1
STYLE
    SYMBOL "circle"
    COLOR 254 161 0
    SIZE 7
END #style2
END
Rendered Bluemarble Image

Rendered Bluemarble image with styled roads

SYMBOLe

  • können im Mapfile oder in einer externen Datei definiert werden
  • Für die externe Datei muss der Parameter SYMBOLSET im MAP-Objekt definiert werden
MAP
    NAME           "sample"
    EXTENT        -180 -90 180 90 # Geographic
    SIZE           800 400
    IMAGECOLOR     128 128 255
    SYMBOLSET      "../etc/symbols.txt"
END

wobei symbols.txt folgendes enthalten könnte:

SYMBOL
    NAME "ski"
    TYPE PIXMAP
    IMAGE "ski.gif"
END

das Mapfile würde enthalten:

LAYER
    ...
    CLASS
        NAME "Ski Area"
        STYLE
            SYMBOL "ski"
        END
    END
END # layer
Rendered Bluemarble Image Skier

Rendered Bluemarble image with skier symbol

LABEL

  • wird innerhalb eines LAYER Objektes definiert
  • Der Parameter LABELITEM im LAYER Objekt kann zum Beschriften eine bestimmte Attributspalte referenzieren.
  • Schriften können in einer Datei, die im MAP-Objekt per FONTSET definiert wird, definiert werden

Ein Beispiel für LABEL-Objekt das eine Schrift referenziert:

LABEL
    FONT "sans-bold"
    TYPE truetype
    SIZE 10
    POSITION LC
    PARTIALS FALSE
    COLOR  100 100 100
    OUTLINECOLOR 242 236 230
END # label
Rendered Bluemarble Image Skier

Rendered Bluemarble image with skier symbol and a label

Siehe auch

LABEL, FONTSET

CLASS Expressions

MapServer unterstützt drei Arten von CLASS-Expressions in einem LAYER:

  1. Zeichenkettenvergleiche

    (EXPRESSION "africa")
  2. Reguläre Ausdrücke

    (EXPRESSION /^9|^10/)
  3. Logische Ausdrücke

    ([POPULATION] > 50000 AND '[LANGUAGE]' eq 'FRENCH')

Bemerkung

Logische Ausdrücke sollten wenn möglich vermieden werden. Sie verlangsamen die Geschwindigkeit beim Erstellen des Kartenbildes.

Siehe auch

Expressions

INCLUDE

Ab MapServer 4.10 kann jeder Teil eines Mapfile in eine externe Datei ausgelagert werden und per INCLUDE-Parameter wieder inkludiert werden. Die einzubindende Datei kann eine beliebige Dateiendung haben und die Angabe erfolgt immer relativ zum Mapfile. Einige mögliche Anwendungen:

  • LAYER können in Dateien ausgelagert werden und von mehreren Anwendungen eingebunden werden
  • STYLE können ebenfalls ausgelagert und von mehreren Anwendungen eingebunden werden

Das folgende Beispiel demonstriert die Verwendung von includes um eine Layerdefinition aus einer externen Datei einzubinden:

‘shadedrelief.lay’ enthält:

LAYER
    NAME         'shadedrelief'
    STATUS       ON
    TYPE         RASTER
    DATA         'GLOBALeb3colshade.jpg'
END

das zugehörige Mapfile enthält:

MAP
    ...
    INCLUDE "shadedrelief.lay"
    ...
END

Das folgende ist ein Beispiel bei dem alle LAYER in externen Dateien (Endung .lay) und alle anderen Objekte (WEB, REFERENCE, SCALE, etc.) in einer ”.ref”-Datei gespeichert sind:

NAME "base"
#
# include reference objects
#
INCLUDE "../templates/template.ref"
#
# Start of layer definitions
#
INCLUDE "../layers/usa/usa_outline.lay"
INCLUDE "../layers/canada/base/1m/provinces.lay"
INCLUDE "../layers/canada/base/1m/roads_atlas_of_canada_1m.lay"
INCLUDE "../layers/canada/base/1m/roads_atlas_of_canada_1m_shields.lay"
INCLUDE "../layers/canada/base/1m/populated_places.lay"
END # Map File

Siehe auch

INCLUDE

MapServer-Installation testen

MapServer version 5.2 OUTPUT=GIF OUTPUT=PNG
OUTPUT=JPEG OUTPUT=WBMP SUPPORTS=PROJ SUPPORTS=FREETYPE
SUPPORTS=WMS_SERVER INPUT=SHAPEFILE

Zum Testen kann ein HTTP-Request zum MapServer CGI-Programm gesendet werden, ohne jegliche Variablen (z.B. http://your.domain.name/cgi-bin/ms4/mapserv.exe) Wird die Meldung ‘No query information to decode. QUERY_STRING not set.’ ausgegeben, funktioniert die MapServer-Installation.

Installation der Demodaten

Laden Sie die MapServer Demo herunter, entpacken diese und folgen Sie den Anweisungen in der ReadMe.txt. Die Demodateien müssen an die richtige Stelle auf dem Server kopiert werden und das Mapfile und die HTML-Seiten müssen den Pfaden der vorliegenden Umgebung angepasst werden. Anschließend wird per Browser die Datei init.html geladen und der Knopf ‘initialize button’ gedrückt. Sollten Fehler auftreten, müssen die gemachten Änderungen anhand der Anleitung überprüft werden.

Eine eigene MapServer-Anwendung

Jetzt, da die MapServer-Demo läuft, kann sie so verändert werden, dass eigene Daten angezeigt werden. Neue LAYER können dem Mapfile hinzugefügt werden, die auf eigene Geodaten aufbauen. (Die vorhandenen Layer sollten gelöscht oder deaktiviert werden z.B. durch Setzen des Status auf “off”.)

Wenn die eigenen Daten eine andere geografische Ausdehnung als die Demodaten haben, muss MAP EXTENT angepasst werden. Um die Ausdehnung zu bestimmen kann ogrinfo benutzt werden. Es kann auch ein GIS benutzt werden um die Ausdehung zu bestimmen. Der MAP EXTENT muss in den Einheiten der Ausgabeprojektion angegeben werden.

Werden Geodaten mit unterschiedlichen Projektionen hinzugefügt, muss eine PROJECTION Definition für MAP (Ausgabeprojektion) und LAYER (vorhandene Layerprojektion) hinzugefügt werden. Adding Data to Your Site ...............................................................................

MapServer unterstützt “von Haus aus” einige Formate für Geodaten. Viele mehr werden verfügbar, wenn MapServer mit den Open Source Bibliotheken GDAL und OGR übersetzt wird.

Vektordaten

Vektordaten können Punkt-, Linien- und Flächenobjekte beinhalten. MapServer unterstützt standardmäßig ESRI Shapefiles, kann aber kompiliert werden mit unterstützung für folgende Formate: PostgreSQL-PostGIS, Geography Markup Language (GML), MapInfo, Komma-,Tab-getrennte Textdateien, und weitere Formate mit OGR.

In der Vector Data reference sind Beispiele zu finden, wie Geodaten zur eigenen MapServer-Anwendung hinzugefügt werden können.

Rasterdaten

Rasterdaten sind pixelbasierte oder Netz/Grid-Daten. Standardmäßig unterstützt MapServer Tiff/GeoTiff, and EPPL7. Mit GDAL, werden GRASS, Jpeg2000, ArcInfo Grids, und weitere Formate unterstützt. Wenn MapServer mit GDAL-Unterstützung übersetzt wird, sollte die eingebaute TIFF-Unterstützung nicht aktiviert werden. Sonst kann es zu Konflikten kommen. Weitere Informationen sind in der Rasterdaten-Referenz nachzulesen.

Projektionen

Da die Erde rund und der Monitor (oder Papierkarte) flach ist, kommt es zu Verzerrungen wenn räumliche Geodaten in einem zweidimensionalen Bild dargestellt werden sollen. Projektionen ermöglichen die Darstellung auf einer ebenen Fläche. Dabei werden einige der Eigenschaften (z.B. Fläche, Richtung, Entfernung, Maßstab oder Konformität) der Daten verzerrt. Die verschiedenen Projektionen unterscheiden sich in der originalgetreuen Darstellung der unterschiedlichen Eigenschaften. Eine gute Einführung stellt die universität von Colorado zur Verfügung.

Liegen alle Daten in der selben Projektion vor (oder unprojiziert Latitude/Rechtswert und Longitude/Hochwert), muss keine Projektion angegeben werden im Mapfile. Für die ersten Schritte mit MapServer kann dies die Konfiguration vereinfachen.

Unterstützung für On-the-fly Projektion bietet Proj.4, sofern MapServer entsprechend kompiliert wurde. Anleitungen für Proj.4-Unterstützung unter Windows können im Wiki gefunden werden.

Die eigene Anwendung erweitern

Abfragemöglichkeit hinzufügen

Es gibt zwei Wege raumbasierte Daten abzufragen. Beide Methoden liefern Daten, in dem entweder Template- oder CGI-Variablen ersetzt werden. Eine QUERYMAP kann die Ergebnisse der Abfrage visualisieren.

Um Abfragen zu ermöglichen, muss jeder LAYER ein TEMPLATE definieren. Alternativ kann auch in einer CLASS ein Template definiert werden. Weitere Informationen, welche CGI-Variablen zum Erstellen von Abfragen benutzt werden können, sind in der MapServer CGI Referenz zu finden.

Attributabfragen

Ein Benutzer kann zu einem Feature Attributdaten abfragen. ‘Zeige mir alle Seen deren Tiefe mehr als 30 Meter beträgt’, wobei ‘Tiefe’ ein Feld in der .dbf Datei oder der Datenbank ist. Bei Attributabfragen werden die Abfrageinformationen per URL (oder Formularübergabe) übergeben. Mode=itemquery liefert einen Wert, mode=itemnquery liefert mehrere Werte.

Die Abfrage sollte den Parameter QLAYER enthalten, der den abzufragenden Layer angibt und einen QSTRING der die Abfrage enthält.Optional kann QITEM zusammen mit QSTRING angegeben werden, um das Abfragefeld direkt anzugeben. Attributabfragen sind räumlich auf die im Mapfile definierte Ausdehnung (EXTENT) begrenzt.

Räumliche Abfragen

Der Benutzer wählt Features durch einen Klick auf die Karte oder das Aufziehen eines Abfragerechtecks. Die Abfrage wird wieder per URL oder Formularübergabe gestellt. Durch das Setzen von mode=QUERY wird bei einem Klick auf die Karte das nächstgelegene Feature geliefert. Bei mode=NQUERY werden alle Feature eines Klicks oder Abfragerechtecks geliefert. Weitere Optionen sind unter CGI zu finden.

Schnittstellen

See: OpenLayers http://openlayers.org

Optimierung von Daten

Die Aufbereitung von Daten für eine performante MapServer-Anwendung ist genauso wichtig wie die Hardwareausstattung und -konfiguration. MapServer arbeitet bereits sehr effizient. Jede Reduzierung des Verarbeitungsaufwandes, der für die Abarbeitung eines Requests notwendig ist, kann die Gesamtperformance deutlich erhöhen. Hier sind einige Anregungen:

  • Indizierung von Daten - in dem räumliche Indizes durch Verwendung von shptree erstellt werden. Räumliche Indizes sollten auch für Geodatenbanken wie PostGIS und Oracle Spatial benutzt werden.
  • Kacheln von Daten - idealerweise werden die Daten in Kacheln aufgeteilt, die die Größe der gewünschten Darstellung aufweist. Es entsteht ein unnötiger Aufwand, wenn ein sehr großes Shapefile oder Bild abgefragt wird, von dem ein nur sehr kleiner Ausschnitt benötigt wird. Werden die Daten gekachelt und mit einem Tileindex (Kachelindex) versehen, kann MapServer direkt auf den (Teil-)Bereich der Daten zugreifen, der abgefragt wurde. Shapefiles können in kleinere Kacheln aufgeteilt werden und ein Tileindex Shapefile kann mit tile4ms erstellt werden. Ein tileindex kann auch für Rasterdaten erstellt werden.
  • Vorklassifizierung von Daten - MapServer gestattet sehr komplexe EXPRESSIONs um Daten zu klassifizieren. Logische und Reguläre Ausdrücke sind aufwändiger abzuarbeiten als Zeichenkettenvergleiche. Um die Effizienz zu erhöhen können die Daten in verschiedene Klassen aufgeteilt werden. Dazu wird ein Feld erstellt, das für CLASSITEM benutzt wird. Für einen Datensatz mit 4 Klassen wird dieses Feld mit den Werten 1,2,3 oder 4 für jedes Feature belegt. Jeder Wert steht für eine Klasse und im Mapfile kann für EXPRESSION ein einfacher Zeichenkettenvergleich benutzt werden.
  • Vorverarbeitung von Bildern - Ressourcenintensive Berechnungen sollten im Vorfeld gemacht werden. Weitere Informationen sind in der Rasterdatenreferenz zu finden.
  • Generalisierung von Overviews - Für kleine Maßstäbe können generalisierte (d.h. vereinfachte) Daten berechnet werden. Diese können maßstabsabhängig mittels LAYER MINSCALE und LAYER MAXSCALE angezeigt werden. Beim Heranzoomen werden so die detaillierten Daten sichtbar. Auch für Bilder kann eine Generalisierung Vorteile bringen.

Siehe auch

Optimization

Wie bekomme ich Hilfe?

Dokumentation

  • Offizielle MapServer-Dokumentation ist auf dieser Seite zu finden.
  • Von Anwendern erstellte Dokumentation findet sich im Wiki.

Mailinglisten

Fragen können an die Liste MapServer Users gestellt werden, wenn man sich vorher registriert. Die Fragen werden normalerweise schnell beantwortet und oftmals auch direkt von den Entwicklern. Einige Punkte sollten beachtet werden:

  1. Vor der Frage sollte im Archiv gesucht werden. Oftmals werden Fragen gestellt, die bereits beantwortet worden. Niemand möchte die selben Fragen immer und immer wieder beantworten.
  2. Informationen zur Version und Konfiguration von MapServer sollten ebenso angegeben werden wie relevante Teile des Mapfiles oder der Templates.
  3. Es sollte immer wieder der Liste geantwortet werden und nicht nur demjenigen dem man antwortet.

IRC

Benutzer und Entwickler von MapServer können im Internet Relay Chat angetroffen werden. Der Chatkanal ist #mapserver auf irc.freenode.net

Gallerie

Unter Beispiele sind einige MapServer-Anwendungen zu sehen.

Tutorial

Perry Nacionales hat ein großartiges Tutorial erstellt, wie eine MapServer-Anwendung erstellt wird. Jeder ist eingeladen die Sammlung von Beispielen zu erweitern falls bestimmte Anwendungsscenarien fehlen.

Test Suite

Die MapServer Testsuite kann heruntergeladen werden zur Demonstration der MapServer-Funktionalitäten.

Bücher

Web Mapping Illustrated , a new book by Tyler Mitchell that describes well and provides real-world examples for the use of Web mapping concepts, Open Source GIS software, MapServer, Web services, and PostGIS.

Mapping Hacks , by Schuyler Erle, Rich Gibson, and Jo Walsh, creatively demonstrates digital mapping tools and concepts. MapServer only appears in a handful of the 100 hacks, but many more are useful for concepts and inspiration.

Beginning MapServer: Opensource GIS Development , by Bill Kropla, is a new book focusing on MapServer. So new, I haven’t seen it yet. According to the publisher, it covers installation and configuration, basic MapServer topics and features, incorporation of dynamic data, advanced topics, MapScript, and the creation of an actual application.