Optimiertes Rendering von Vektordaten in OpenLayers

Olivier Guyot

Playlists: 'fossgis2022' videos starting here / audio

Um ein verbessertes Rendering von Vektordaten zu ermöglichen, entwickeln wir in einem aktuellen Projekt eine auf WebGL basierende Erweiterung für Linien und Polygone.

Die weit verbreitete Bibliothek OpenLayers, die das Erstellen von einfachen als auch umfassenden WebGIS Anwendungen ermöglicht, wird immer häufiger auch für die Datentransformation genutzt, wobei eine Reihe von Formaten (GeoJSON, GPX und Mapbox Vector Tiles) unterstützt werden.

Die vermehrte Nutzung von Kartendiensten im Mapbox Vector Tiles Format hat aufgezeigt, dass die aktuell von OpenLayers für das Rendering von komplexen Geometrien verwendeten Funktionen (Canvas API) bei großen Datenmengen an ihre Grenzen stoßen. Somit können zum Beispiel Kartenebenen basierend auf Vector Tiles nur eingeschränkt genutzt werden, da eine einzelne Ebene bereits sämtliche Ressourcen aufbrauchen kann.

Um ein performantes Rendering von Vector Tiles mit komplexen Geometrien zu ermöglichen, entwickeln wir in einem aktuellen Projekt aufsetzend auf WebGL einen Renderer für Linien und Polygone. Zu den größten Schwierigkeiten bei der Umsetzung zählen auf der einen Seite eine performante Triangulation von Polygonen und auf der anderen ein hochaufgelöstes Rendering von Linien. Für ein verbessertes Nutzererlebnis wurde bei der Prozessierung auf Multithreading geachtet.

Die aktuellen Entwicklungen stellen die Grundlage für einen kompletten Vector Tiles Renderer basierend auf WebGL dar. Die zentrale Einschränkung der WebGL API bezieht sich auf das Rendering von Labels oder Text im Allgemeinen.

Trotz dieser Schwierigkeiten im Umgang mit Typografien sind unsere Erfahrungen mit WebGL als ein extrem schneller und effizienter Renderer im Umgang mit Vector Tiles sehr vielversprechend.

Download

Embed

Share:

Tags