Drucken von Mapbox Vector Tiles mit Hilfe von @geoblocks/print
11.03.2022 , Bühne 1

Über Mapfish Print können jetzt Layer im MapBox-Vector-Tiles Format mit beliebiger Auflösung gedruckt werden. Die gesamte Logik wurde in einer kompakten unabhängigen Bibliothek ohne feste Abhängigkeiten clientseitig implementiert.


In diesem Vortrag wird der Geoblock “print” (https://github.com/geoblocks/print/) vorgestellt, der als Baustein für das Drucken von MapBox-Vector-Tiles dient. Wir stellen vor, wie die Implementierung mit Mapfish Print funktioniert und zeigen, wie die Einbindung mit anderen Tools und Anwendungen möglich ist.

Bei dieser Lösung basiert das Rendering auf OpenLayers und erfolgt auf Seiten des Clients. Dadurch werden die Gleichheit der Funktionen und ein ähnliches Erscheinungsbild zwischen der angezeigten und der gedruckten Version garantiert. Zum Beispiel wird so die Verwendung von MapBox-eigenen JSON-Styles unterstützt. Zusätzlich können Labels parallel zu Linien angeordnet und Überlagerungen zwischen Symbolen und Labels vermieden werden.

Die gesamte Logik ist in einer kompakten Bibliothek ohne feste Abhängigkeiten implementiert (https://github.com/geoblocks/print/). Folglich ist es möglich, den Druck von MapBox-Vector-Tiles in andere Drucklösungen zu integrieren, so kann auch einfach browserbasiert ein PDF erzeugt werden. Dieser Geoblock eröffnet weitere Möglichkeiten, wie z.B. einen voll funktionsfähigen MapBox-Vector-Tiles Provider für Cesium: https://github.com/openlayers/ol-cesium/blob/master/src/olcs/MVTImageryProvider.js.

Dieses Projekt verdeutlicht die umfassenden Arbeiten, die bereits als Teil von Entwicklungen im Zusammenhang mit MapBox-Vector-Tiles in OpenLayers geleistet wurden und zeigt wie wir von der vorhandenen Codebasis profitieren konnten.

In Zukunft könnte eine ähnliche Technik mit MapLibre ausprobiert werden, um den Anwendern der Basiskarte die gleichen Funktionalitäten und Stylings anzubieten. Außerdem könnte dieser Geoblock die Basis für die die Implementierung einer MapBox-Vector-Tiles Kartenebene für CesiumJS sein.

Architect at Camptocamp. Maintainer of the ol-cesium library.