Vector Tiles hinter den Kulissen - Thomas Skowron FOSSGIS Konferenz 2019, Dresden - pretalx
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
Später dann
Strategien zur Auslieferung von Karten
WMS
WMS
Tiles/Slippy Map
Standardisierte Abfragen Gute Cachebarkeit
Darstellung zementiert
Cleveres Caching ermöglicht aber mehrere Stile
Nachteile
Recht ressourcenintensiv
Domänenspezifische Darstellung möglich, aber Erweiterung schwierig
Keine grafische Skalierbarkeit
Neue Technologie muss her!
Nutzer wollen ihre Karte stylen „Ich will, dass alle Gebäude rot sind“
Datenhaltung noch mehr von Rendering entkoppeln
Caching ermöglichen
Web Scale!
Am besten auch Austauschformat für nicht-grafische Anwendungen
Vector Tiles sind nichts Neues
Erweiterung von bestehenden Technologien
Datenbank Renderer Cache Postgres Bitmap Z/X/Y Web Server Viewer
Datenbank Tiler Cache Postgres Vector Z/X/Y Style Server Web Server Viewer inkl. Renderer
Optionen
GeoJSON Vorteile Nachteile GeoJSON kann jeder, Nicht optimierbar, großer insbesondere Browser Platzbedarf
TopoJSON „Optimiertes GeoJSON“ Vorteile Nachteile Setzt auf GeoJSON auf, also Immer noch nur für Karten gute Kompatibilität begrenzter Komplexität Speichereffizienz durch Übertragungsgröße dennoch relative Koordinaten recht hoch
MVT Mapbox Vector Tiles „Aktueller Stand der Technik“ Vorteile Nachteile Binäres Datenformat, Nicht menschenlesbar spezifisch von Grund auf entwickelt für diesen Keine Rohdaten, müssen Nutzungsfall spezifisch vorverarbeitet werden (Rendervorschrift) Komplexe Karten sind abbildbar
Entstanden aus Bedürfnissen im hochskalierten Betrieb
Optimierte Datenstrukturen fürs Rendering mithilfe von Grafikkarten und kleine Dateigrößen
Basiert auf Protocol Buffers Serialisierungstechnologie von Google
Im Gegensatz zu *JSON nicht selbstbeschreibend, sondern schemabasiert .proto
Point LineString Key:Value Polygon Geometrien Tags Feature Layer
2/1 0/0 0/-2
Styling kann offen gelassen werden
Layerbasiertes Styling
Beispiel Zeichne alle Elemente auf dem Layer „Gebäude“ rot mit einer Transparenz von 50 %
Kann durch Filter auf Tags ergänzt werden
Beispiel Vom Layer „Straßen“, nur jene rendern, die den rang=1 haben
Beispiel Vom Layer „Städte“, jene mit Label versehen, die population>=9000 und region=hauptregion haben
Clients unterstützen das Beziehen von mehreren Vektorquellen
Sandwiching Layer A Quelle 1 Layer X Quelle 2 Layer B
Zusammenbauen von Vector Tiles ist eine triviale Operation Kann on the fly geschehen!
Dadurch sind WMS-artige Abfragen möglich bspw. nur bestimmte Layer anfragen
Trotz der hohen Optimierung gibt es Limitierungen
Es bleiben zerschnittene Daten Geocoder/Router/sonstige Anwendungen haben spezifische Strategien zum Assemblieren der aufgetrennten Features
Elementmenge muss im Rahmen bleiben!
Bei Bitmaps: Jedes Bei Vektoren: Jedes Pixel kann nur ein Pixel kann auf mal vergeben mehreren Layern werden vergeben sein
Insbesondere in mittleren Maßstäben muss aggressiv vereinfacht/weggelassen werden
Ein paar Tricks und Kniffe
Sehr selektiv Rendern Generalisierung muss um Faktor „Dateigröße“ erweitert werden
Aggregation von Geometrien in wenige Features mit gleichen Attributen Beispiel: Alle Autobahnen kommen in ein Feature, Labels werden getrennt serialisiert
Räumliches Clustern von Geometrien Ziel: Kleine relative Koordinaten
Fazit
• Interessante Technologie • Basiert auf Standardtechnologien • Nicht unbedingt alles neu • Sogar MVT ist schon seit 5 Jahren offen • Styling ist kundenfreundlicher • Getrieben von den Bedürfnissen des hochskalierten Hostings
Thomas Skowron Software Development & Consulting thomas.skowron.eu thomas@skowron.eu
Sie können auch lesen