Vector Tiles und die neuen OGC-Standards: Leistungsanalyse und Anwendungsmöglichkeiten
Dieser Artikel hebt die Bedeutung der Bereitstellung von Geodaten nach den neuen OGC Standards hervor und gibt einen Überblick über die Performance verschiedener Vector Tiles Server. Anhand eines Beispiels wird illustriert, wie Vektordaten effektiv als Vector Tiles genutzt werden können und wie die neue Base Map von Swisstopo, die ebenfalls als Vector Tiles verfügbar ist, mit eigenen Daten der Amtlichen Vermessung kombiniert werden kann.
Einleitung
Das Open Geospatial Consortium (OGC) wurde 1994 gegründet, um offene Standards für den Austausch von Geodaten zu entwickeln. Der erste bedeutende Standard, der Web Map Service (WMS), ermöglichte im Jahr 2000 die Veröffentlichung georeferenzierter Kartenbilder über das Internet. Diese Standards revolutionierten die Geoinformatik, indem sie die Nutzung von Geodaten ohne Download ermöglichten.
Traditionelle OGC-Dienste wie WMS und WFS basieren auf dem Simple Object Access Protocol (SOAP) und haben sich als zuverlässig erwiesen. Mit der neuen OGC-Standardsammlung, der OGC API, setzt OGC jedoch auf moderne Webtechnologien, die eine effiziente und flexible Bereitstellung von Geodaten über aktuelle Browser ermöglichen.
OGC API-Tiles als wichtiger neuer Standard ermöglicht es Vektordaten in Vektorkacheln (Vector Tiles) bereitzustellen. Im Gegensatz zu Raster Tiles enthalten diese Kacheln keine Pixel, sondern Vektorgeometrien mit Attributinformationen, was eine flexible und verlustfreie Datenvisualisierung erlaubt.
Vorteile von Vector Tiles im Vergleich zu Raster Tiles
- Grösse und Effizienz: Vector Tiles sind in der Regel kleiner als Raster Tiles, wodurch sie schneller heruntergeladen werden können und besser für die Offline-Nutzung geeignet sind.
- Flexibilität in der Darstellung: Anders als bei Raster Tiles wird die Darstellung nicht im Voraus vom Datenanbieter festgelegt und in den Kacheln gespeichert. Stattdessen kann der Client die Darstellung dynamisch definieren und mithilfe von Web Mapping Libraries umsetzen.
- Style-Vorlagen und Editierbarkeit: Die meisten Vector Tiles Anbieter stellen Style-Vorlagen in Form von JSON-Dateien bereit. Diese können mit Vector Tiles Editoren wie «Maputnik» bearbeitet oder vollständig neu definiert werden, um die Kacheln nach individuellen Anforderungen anzupassen.
- Attributinformationen: Vector Tiles können detaillierte Attributinformationen in den Objekten speichern, was eine differenzierte Darstellung ermöglicht. Beispielsweise können basierend auf ihren Attributen (Strassentyp, Geschwindigkeit etc.) unterschiedliche Stile für verschiedene Arten von Strassenachsen definiert werden.
- Interaktivität und Funktionalität: Mit Vector Tiles lassen sich interaktive Karten einfacher umsetzen, da die Rohdaten Informationen enthalten, die für Interaktionen genutzt werden können (z.B. Pop-ups, Hervorhebungen). Funktionen wie das dynamische Filtern und Abfragen von Daten sind ebenfalls einfacher umzusetzen.
Diese Eigenschaften machen Vector Tiles zu einer leistungsfähigen und flexiblen Lösung für die Bereitstellung und Darstellung von Geodaten in Webanwendungen.
Masterthesis: Performancevergleich von Vector Tiles Servern
Viele WebGIS-Anwendungen in der Schweiz nutzen die Landeskarte von Swisstopo als Hintergrundkarte. Aufgrund ihres umfangreichen Informationsgehalts ist sie jedoch nicht immer ideal dafür geeignet. Daher war es mein Ziel, eine neue, performante Hintergrundkarte mit aktuellen, zuverlässigen und genauen Daten im Vektorformat zu entwickeln.
In meiner Masterarbeit mit dem Titel «Performancevergleich von Open-Source-Vector-Tiles-Serverlösungen zur Bereitstellung von Geodaten aus PostGIS-Datenbanken» habe ich sechs verschiedene Server verglichen, welche Geodaten aus einer PostGIS-Datenbank als Vector Tiles bereitstellen können.
Tabelle 1: Übersicht Vector Tiles Server
Diese Serveranwendungen wurden auf einem Linuxserver mittels Docker Compose konfiguriert und jeweils als eigene Docker Container gestartet. Zusätzlich wurde eine PostGIS-Datenbank in einem Container bereitgestellt, in der die Amtliche Vermessung des Kantons Thurgau als Beispieldatensatz importiert wurde.
Zur externen Bereitstellung der Vector Tiles und der Server-APIs wurde «NGINX» als Webserver verwendet. Jeder der sechs Webserver hat die exakt gleichen PostGIS-Daten als Vector Tiles bereitgestellt.
Abbildung 1: Übersicht Docker Container auf dem Ubuntu Server
Mittels der Software «Apache JMeter» wurden die sechs Server auf ihre Performance hin verglichen. Dazu wurden verschiedene Testszenarien mit ausgewählten Datensätzen der Amtlichen Vermessung durchgeführt.
Abbildung 2: Durchschnittliche Antwortzeit pro Server
Die Resultate des Performancetests zeigen teilweise deutliche Unterschiede in den Antwortzeiten der sechs Server. Über alle Testszenarien hinweg erzielte der Server «Martin» die schnellste Leistung bei der Bereitstellung der Kacheln. Mit Ausnahme von Test 3 lässt sich für alle Szenarien folgende Server-Rangliste festlegen:
- Martin
- Tegola
- BBOX
- pg_tileserv
- TiPg
- Ldproxy
Zusätzlich zu den reinen Zahlen wurde ein visueller Performancevergleich mithilfe der JavaScript-Bibliothek «Maplibre GL JS» durchgeführt. Auf der Plattform www.vectormap.ch können Sie die Vector Tiles jedes Servers auf einer Karte anzeigen lassen und erhalten so einen visuellen Eindruck der Geschwindigkeit der einzelnen Server.
Der Vergleich hat verdeutlicht, dass Vector Tiles eine effiziente Methode darstellen, um Vektordaten dynamisch aus einer PostGIS-Datenbank als Karten bereitzustellen.
Besonders vielversprechend ist der Server «BBOX», der noch relativ neu auf dem Markt ist und zukünftig weitere Optimierungen erwarten lässt. Neben der Unterstützung von OGC API-Tiles strebt dieser Server die Bereitstellung weiterer OGC APIs an, um eine umfassende Lösung für die effiziente und moderne Bereitstellung von Geodaten anzubieten.
Base Map AV
Mein persönliches Ziel war es, die Base Map von Swisstopo durch die Integration von Daten aus der Amtlichen Vermessung zu erweitern. Dadurch können bei grossem Massstab spezifische Vermessungsdaten anstelle der allgemeinen bundesweiten Daten angezeigt werden.
Ein erster Entwurf ist unter www.vectormap.ch/BaseMapAV verfügbar. In diesem Beispiel werden im grossen Massstab die Gebäude und Strassen von Swisstopo ausgeblendet und stattdessen die Bodenbedeckung, Liegenschaften und weitere Amtliche Vermessungsdaten eingeblendet. Die verwendeten Datenquellen umfassen sowohl die Vector Tiles von Swisstopo als auch die Vector Tiles des Servers «BBOX», welcher die Daten dynamisch aus einer PostGIS-Datenbank generiert und bereitstellt. Die Darstellung der verschiedenen Vektordaten in den Vector Tiles wurde mittels der Software «Maputnik» konfiguriert, als Style-JSON gespeichert und anschliessend in eine Maplibre Webkarte eingebunden.
Abbildung 3: Vergleich Vector Tiles Base Map von Swisstopo (links) und Amtliche Vermessung des Servers «BBOX» (rechts)
Dieses Beispiel verdeutlicht das enorme Potenzial von Vector Tiles. Sie ermöglichen es, unterschiedliche Darstellungen von Hintergrundkarten für verschiedene Anwendungsfälle zu definieren, ohne dass serverseitig zusätzliche Darstellungsmodelle oder Datensätze erstellt werden müssen. Darüber hinaus bin ich überzeugt, dass die Integration weiterer Geodaten wie z.B. Nutzungsflächen im Vektorformat die Interpretation der Daten vereinfacht.
Fazit
Mit diesem Artikel und meiner Masterarbeit möchte ich Geodatenanbieter dazu ermutigen, ihre Geodaten auch gemäss den neuen OGC API Standards bereitzustellen.
Durch die Anwendung dieser Standards können Geodaten besser ausgetauscht, verwendet und miteinander verknüpft werden, was zu einer effizienten Nutzung führt.
Spannend wäre auch die Frage, ob die «Konferenz der kantonalen Geoinformations- und Katasterstellen» (KGK) unter www.geodienste.ch bald Geodaten im neuen OGC API Standard und als Vector Tiles anbieten wird, um eine noch effizientere Nutzung der Geodaten zu ermöglichen.
Alle Ergebnisse und Skripte meiner Masterarbeit sind in meinem GitHub-Repository verfügbar und können als Vorlage für eigene Performancevergleiche genutzt werden.
About the author: Fabian Rechsteiner (UNIGIS Master graduate)
Fabian Rechsteiner holds a Master’s degree in Geoinformatics from UNIGIS Salzburg and a Bachelor’s degree in Geomatics Engineering. He has been working as a project manager in the GIS field since 2020 and has a keen interest in new web technologies. As an Open-Source enthusiast, Fabian is dedicated to leveraging open solutions in his work. Currently, he is a geoinformatics specialist at the Surveying and Geomatics Office in the city of Winterthur, where he leads the project for a harmonized 3D city model of Switzerland.
LinkedIn: https://www.linkedin.com/in/fabian-rechsteiner
GitHub: https://github.com/FabianRechsteiner
Masterthesis: Performancevergleich von Open-Source-Vector-Tiles-Serverlösungen zur Bereitstellung von Geodaten aus PostGIS-Datenbanken.
Base Map AV: https://www.vectormap.ch/BaseMapAV