MapServer [1] ist eine Open-Source-Server-Software zur Bereitstellung von OGC-konformen Diensten. Unterstützt werden verschiedene Standards des OGC [2] wie WMS, WFS, WCS, FE, SLD etc. MapServer ist weitestgehend in C implementiert und läuft auf WebServern als CGI-Script [3]. Es besteht die Möglichkeit, die Software in Programmierumgebungen einzubinden, um mit ihnen OGC-konforme Dienste bereitzustellen (MapScript) [4].
Das OSGeo-Projekt MapServer kann auf eine lange Geschichte zurückblicken: Die ersten Zeilen wurden bereits Mitte der 90er Jahre geschrieben; 1997 veröffentlichte Steve Lime, der immer noch im Projekt aktiv ist, die Version 1.0. Am 31. Juli diesen Jahres wurde die aktuellste Version 7.6.1 veröffentlicht. Die wichtigen Fixes dieser Version sind folgende:
• Add a bounding box filter to requests passed down to OGR whenever possible
• Don’t use CIRCULARSTRING when fetching geography data from SQL Server.
• WFS server: add support for <gml:Envelope> in <fes:Intersects>
• Enable relative URL on SLD ExternalGraphic
Geplant war, die Version 8 in diesem Jahr stark voranzutreiben. Und obwohl aus bekannten, pandemiebedingten Gründen die Codesprints nicht wie geplant stattfinden konnten, steht das neue major release bereits vor den Türen. Der aktuelle Plan [5] sieht wie folgt aus:
• Feature freeze: Fri. October 2, 2020
• 8.0-beta1: Fri. October 9, 2020
• 8.0-beta2: Fri. October 16, 2020
• 8.0-rc1: Fri. October 23, 2020
• 8.0 (final): Fri. October 30, 2020
Wenn man bei den MapServer-Neuerungen auf dem Laufenden bleiben möchte, landet man schnell beim MapServer Changelog [6]. Dieser ist jedoch etwas unübersichtlich, da dort sämtliche Commits aufgeführt werden. Eine deutlich bessere Übersicht bietet die MapServer History [7]. Bei der Durchsicht kristallisieren sich seit Version 7.0 schnell diese Neuerungen heraus:
• MapScript Unterstützung für Python 3 und PHP7
• Neues Ausgabeformat Mapbox Vector Tiles (MVT): Ist noch nicht in der Dokumentation angekommen, Informationen hierzu finden sich im RFC119 [8]. Darüber hinaus hat Steve Lime ein Demo bereit gestellt [9].
• Unterstützung von OGC Filter für WMS: Ist noch nicht in der Dokumentation angekommen, Informationen hierzu finden sich im RFC118 [10].
• Compositing Filters: Ermöglichen „Verfremdungen“ der Grafik (blur, darken etc.), um MapServer-Karten noch ansprechender zu gestalten. Die opacity-Konfiguration gehört ebenfalls in einen composite-Block, opacity auf Layer-Ebene ist als deprecated markiert und wird in MapServer 8 wahrscheinlich nicht mehr funktionieren.
• Erweiterte Unterstützung von Layer-Metadaten: Mit http://localhost/path/to/ows?request=GetMetadata&layer=road lassen sich erweiterte Metadaten zu einzelnen Layern (im Beispiel: Straßenlayer) abfragen.
• INSPIRE Download WCS 2.0: Die bereits etwas älteren INSPIRE-Metadaten-Funktionen für WebMapServices lassen sich nun auch auf WCS anwenden (embedded metadata und Unterstützung mehrerer Sprachen) [11].
Am 30. Juni 2020 wurde MS4W 4.0.4 [12] (MapServer for Windows) veröffentlicht. Darin ist bereits die Version 7.7 in der dev-Version enthalten. MS4W wird von Jeff McKenna betreut. Enthalten sind nicht nur sämtliche MapServer-Binaries für Windows (inklusive der Hilfsprogramme), sondern auch der passende Webserver. Es steht ein setup.exe und ein zip-Archiv zur Verfügung. Darüber hinaus sind viele auf MS4W abgestimmte Zusatzpakete enthalten, beispielsweise OpenLayers, Mapbender, die klassische MapServer Itasca-Demo und ein MapServer OGC-Workshop. Aktuell werden von Windows-Nutzern MapServer-Pakete in einem Umfang von 2 TB je Monat heruntergeladen – das Projekt erfreut sich also im GIS-Bereich großer Beliebtheit.
Wie bereits erwähnt, ist zurzeit nicht sicher, wann Version 8 herauskommt. Einige zu erwartende Änderungen lassen sich jedoch schon jetzt dem Release-Plan [5] entnehmen:
• Volle PROJ 6+ Unterstützung
• Unterstützung OGC API/WFS 3
• Unterstützung von Umlauten in Dateinamen und -pfaden
• Aufräumen der Mapfile-Syntax
Der letzte Punkt ist für die meisten Anwender sicher der interessanteste und wichtigste. Ein paar Ideen dazu sind bereits dokumentiert [13], aber es ist sicher noch mehr zu erwarten. Auf jeden Fall ist davon auszugehen, dass alle Mapfile-Schlüsselworte, die in der Dokumentation bereits jetzt als „deprecated“ markiert sind (alte Hasen erinnern sich an die Annotation-Layer, die mit dem Wechsel von 6 auf 7 weggefallen sind), mit Version 8 nicht mehr nutzbar sein werden [14].
Darunter sind – wie bereits erwähnt – opacity ohne composite-Block, dump, labelangelitem, transparency und vieles mehr. Es lohnt sich bereits jetzt ein Auge auf diese Schlüssel zu haben und diese nach und nach durch die aktuellen Schreibweisen zu ersetzen, wenn man gerade eine Mapdatei editiert. Soweit der aktuelle Status des Open-Source-Projektes MapServer. Wir sind gespannt auf Version 8.
[1] https://mapserver.org/
[2] https://www.opengeospatial.org/
[3] https://de.wikipedia.org/wiki/Common_Gateway_Interface
[4] https://mapserver.org/mapscript/index.html
[5] https://github.com/mapserver/mapserver/wiki/MapServer-8.0-Release-Plan
[6] https://mapserver.org/development/changelog/changelog-7-4.html
[7] https://github.com/mapserver/mapserver/blob/branch-7-4/HISTORY.TXT
[8] https://mapserver.org/development/rfc/ms-rfc-119.html
[9] https://github.com/sdlime/mvt-demo
[10] https://mapserver.org/development/rfc/ms-rfc-118.html
[11] https://mapserver.org/development/rfc/ms-rfc-120.html
[12] https://ms4w.com/
[13] https://github.com/mapserver/mapserver/wiki/Mapfile-Syntax-Changes-for-8.0
[14] https://mapserver.org/MIGRATION_GUIDE.html
>>> Zurück zum Inhaltsverzeichnis Infobrief 02 | 2020