We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Styling und Publikation von Vektor-Tiles

00:00

Formal Metadata

Title
Styling und Publikation von Vektor-Tiles
Title of Series
Number of Parts
95
Author
License
CC Attribution 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
Vektor-Tiles haben das Potential die bewährten Rasterkarten in vielen Bereichen abzulösen oder mindestens massgeblich zu ergänzen. Für das Styling hat sich Mapbox GL JS als Industrie-Standard etabliert. Neben dem Viewer und den nativen SDK für Android, iOS, macOS, Node.js und Qt von Mapbox unterstützt auch OpenLayers den Import von Mapbox GL Styles. Der Vortrag bietet eine Einführung in das Mapbox GL JS Styling Format und gibt Tipps zur Publikation von Vektor-Tiles.
Keywords
12
58
60
71
Thumbnail
22:07
72
77
Thumbnail
20:22
Vector graphicsLecture/Conference
Vector graphicsHTTP cookieDemosceneJSONXML
Vector graphicsPerspective (visual)Precedence diagram methodJSONComputer animation
Firefox <Programm>Inventor <Programm>APIMenu (computing)OLEComputer animation
Point of saleOLEArtificial neural networkLAD <Programmiersprache>EckeFile viewerVector graphicsSlide rulePolygonParameter (computer programming)Web browser
LAD <Programmiersprache>Vector graphicsDemosceneDepictionJSONXML
Vector graphicsDemoscene
Vector graphicsMicrosoft Transaction ServerTessellationScalabilityServer (computing)Client (computing)Service (economics)Smart cardFile formatDepictionQuest <Programm>Server (computing)Source codeJSON
Vector graphicsCompact spaceAlgebraic closureBinary fileGeometryNetbookPlane (geometry)Moment (mathematics)outputAttribute grammarPDF <Dateiformat>Service (economics)GeometryGoogle
Vector graphicsMultiplicationMultilineLiniePolygonHausdorff spaceForceGeometry
Software developerPolygonMobile appEngineering drawing
Energy levelSpeciesPlane (geometry)
File viewerEditorHTMLPlug-in (computing)Level (video gaming)Projektion <Mathematik>InternetEuclidean vectorWeb browserVECTOR <Programm>Vector graphicsComputer animationPhysical quantityDivision (mathematics)File viewerPlug-in (computing)Graphics tabletAktion <Informatik>Smart cardEigenvalues and eigenvectorsRollbewegung
Level (video gaming)HTTPVersion <Informatik>Division (mathematics)Spring (hydrology)Bus (computing)Lecture/Conference
Vector graphicsUniform resource locatorMaximum (disambiguation)VECTOR <Programm>HTTPForcePDF <Dateiformat>Spring (hydrology)Uniform resource locatorSource codeJSON
Vector graphicsComputer fontComputer fileJSON
Computer fontLecture/Conference
PolygonICONJavaScriptUpdateTypZoom lensRadiusDemosceneFunction (mathematics)PixelTypZoom lensPhysical quantityDigital filterJavaScript
Zoom lensVector graphicsExpressionFunction (mathematics)Zoom lensSTYLE <Programmierumgebung>Computer animation
Computer reservations systemData conversionGeometryCache (computing)Vector graphicsServer (computing)Series (mathematics)SoftwareVersion <Informatik>Programmer (hardware)JSON
Apache <Programm>Service (economics)Server (computing)Proxy serverVector graphicsDemosceneLevel (video gaming)MacBookService (economics)FunktionalitätSTYLE <Programmierumgebung>Standard deviationJSONComputer animation
Transcript: German(auto-generated)
Okay, dann kommen wir zum nächsten Vortrag von Pirmin Calbera, der mehrfach hier vorträgt und jetzt wird er vortragen über VectorTiles. Ja, ich freue mich, dass das Interesse da ist, ich erzähle was über VectorTiles,
konzentriere mich ein bisschen auf Styling und Publikation, aber gebe doch noch ein paar Grundlagen dazu. Ich arbeite für die Firma SourcePoll, wir sind in Zürich stationiert, wir machen VectorTiles, einerseits Cookies Entwicklung, Support, Maintenance und Webgeist und im Webbereich sind eben diese VectorTiles ein Thema.
Als Einstieg würde ich eine kurze Demo zeigen, wobei ich jetzt annehme, dass die meisten schon was gesehen haben, aber, ich sehe es nicht, oh Mist, das ist sau schwierig. Wieder so eine schwierige Sache.
Also leider gibt es jetzt nicht mehr die Standardthemen, wo alles technisch schön erklärt wird, sondern es gibt einfach im Block, zum Beispiel in der Mapbox, einige Demos, die man anschauen kann. Ich habe jetzt hier mal eine ausgewählt, die ist jetzt standardmässig 2.5D, ich
probiere sie jetzt erst in 2D zu drehen, ist jetzt 2D, ok, ja. Gut, was man sieht, einerseits, nein, ich sehe immer noch 3D, ja, ah, es
lädt, es ist nicht so schnell, es ist eine englische Seite, einerseits, was man sieht, das sind Vektoren, das heisst, die werden jetzt im Browser dargestellt und das heisst, dass halt der MouseOver automatisch dabei ist oder geschenkt ist
und was auch möglich ist damit, ich kann solche Parameter on the fly enden, das heisst, ich kann jetzt hier so Slider machen in meiner Applikation und da alles
einseitig gerendert wird, ja gut, das schaffe ich jetzt nicht, um die Ecke, kommt direkt gerade die Änderung im Viewer. Das ist etwas, das man eigentlich nur mit diesen Vektortiles machen kann und sonst muss ich diverse Tricks machen, damit das geht und das ist mal die 2D-Darstellung
und was man am Anfang gesehen hat, man kann das dann auch kippen und dann habe ich so eine, drehen kann ich es auch, jetzt habe ich es geschafft, ja, das heisst, da gibt es so eine 2,5D-Darstellung, wo ich extravieren kann, Polygone und
dann so 3D-Darstellung machen kann, das ist so eigentlich auf die schnelle Demo, was haben wir gesehen, man kann die Stile beeinflussen, weil alles
kleinseitig gerendert wird, heisst, dass ich kann auch umschalten zwischen verschiedenen Darstellungen mit den gleichen Daten dahinter, ich kann dynamisch filtern, das habe ich gezeigt, das Zoomverhalten, das hat man
jetzt hier nicht so gut gesehen, aber ich kann sehr fein aufgelöst zoomen, weil immer wieder gerendert wird, habe ich da keine Lücken zwischen den Zoomstufen und ich kann rotieren, zumal die ganze Karte und bei den Labels ist noch speziell, das habe ich jetzt hier nicht gesehen, da die auch
kleinseitig gelabelt werden, kann ich zum Beispiel Labels machen, die immer horizontal bleiben, also die nicht mitdrehen mit der Karte, das kann ich sonst nicht so einfach. Wenn man das jetzt vergleicht mit den klassischen OGC-Services, da gibt es aber trotzdem auch noch Vorteile, wenn ich jetzt zurückgehe zu WMS, dem klassischen Service, wir sprechen jetzt
hier von Kacheln und wer mit Kacheln gearbeitet hat, der weiß, es gibt auch Probleme an den Rändern, ich habe Labels, die eigentlich über die Kachelgrenze heraus sollten, das ist schwierig, oder dass ich Mehrfachbeschriftungen habe von langen Strassen, solche Sachen, das habe
ich bei WMS viel weniger, auch das Drucken ist hier eine Herausforderung, bei WMS ist das quasi geschenkt und da ist auch mit höheren DPI's bei allen Web-Servern, es ist einfacher einbettbar, weil es ist einfach ein normales Rasterbild, wo ich sonst ein PNG einbette, kann
ich auch ein Karten-PNG einbetten und dann gibt es auch gewisse Bilder, die sich nicht zum Vektorisieren eignen, wie Luftbilder, da bleibt man weiterhin bei Rasterdiensten. Für WMS oder für Rasterdienste gibt es
das, das macht das Ding sofort viel skalierbarer, weil immer die gleichen Requests kommen, da kann ich auf Serverseite das vorbereiten, ich kann cashen, sowohl auf Server und Clientseite und diese Vorteile, die haben auch die Vector-Tiles, das heisst, es kann ebenfalls leichter skalieren,
es ist einfacher zum cashen und dazu kommt, was wir jetzt gesehen haben, die Interaktivitätsmöglichkeiten, die flexible Darstellung, ganz wichtig, ich kann jetzt auch High-DPI-Screens gut unterstützen, das ist bei WMTS unter anderem ein bisschen ein Problem, wenn ich hoch aufgelöste Tiles produzieren muss, damit es auch auf High-DPI-Screens gut aussieht.
Das ist so eine Gegenüberstellung, es gibt verschiedene Vektor-Tile-Formate, ursprünglich begonnen hat man, in dieser Phase hat man begonnen mit Geo-Chasen, hat das in Tiles gesplittet, auch mit Topo-Chasen, wurde es
gemacht und wird immer noch gemacht, aber dann kam Mapbox mit einem neuen Format, das ich jetzt hier noch genauer vorstelle, das sehr kompakt ist, auf die Darstellung ausgerichtet, was jetzt ganz neu ist, vor wenigen Tagen wurde angekündigt, dass es aber jetzt schon die nächste Generation
in Vorbereitung ist, das ist jetzt so ein Spezifikationsprozess eröffnet, wo man jetzt noch Input geben kann und der dann aber in spätestens einem Jahr abgeschlossen sein soll, das heißt wir sprechen jetzt hier vom Vektor-Tile-2-Standard, es gibt noch weitere Vektor-Tile-
Spezifikationen im 3D-Bereich, das i3S wurde jetzt gerade von OGC aufgenommen, das stammt von ESRI und dann gibt es Benzysium im Globe, die haben auch 3D-Tiles, das ist jetzt auch so ein Offen spezifiziert und die wollen das eigentlich auch zum Standard machen, aber im 2D-Bereich ist
momentan eigentlich MVT der klare Leader, der verwendet wird und ich werde mich jetzt hier auch darauf konzentrieren, von OGC gibt es auch Pläne was zu machen, im Moment sieht es so aus, dass es nicht einfach MVT als OGC-Standard machen, sondern dass sie was eigenes
machen, also entweder bringen sie Teils in WMTS rein, also Vektor- Teils in WMTS oder sie erweitern WFS und Teils oder sie kombinieren alle OGC-Services zu einem, das hat einen schönen Namen, aber habe ich vergessen, sagen sie einen super Service der alles kann und das Styling ist dann die andere Teil von der Spezifikation, da ist jetzt gerade im
letzten Paper, das ich gelesen habe, SLD der Favorit, aber es wird sicher noch einige Zeit dauern und wer heute Vektor-Teil-Maps machen will, der macht das größtenteils mit diesem Mapbox-Vector-Teils-Format, das offen spezifiziert ist, aber in der Hand einer Firma ist, also es ist
schwierig das zu beeinflussen. Diese Mapbox-Vector-Teils, die werden binär ausgeliefert und zwar im Protokoll Waffenformat, das ist ein Google von Google spezifiziertes Serialisierungsformat, das auch für andere Sachen verwendet wird, es hat die Eigenschaft, dass es auch streamable ist,
das heisst ich kann Schritt, also Teil für Teil lesen und das schon verarbeiten, ich kann es konkretiniert zusammenhängen, also ich kann mehrere PBFs zusammenhängen und es ist immer wieder ein gültiges PBF. Es hat neben den Geometrien gibt es auch Datenattribute und da ist
jetzt im Geobereich noch wichtig, dass die Feature ID, die für uns noch häufig zentral ist, vorgesehen ist, aber einfach optional ist und auch wichtig, in so einer Vector-Teil können mehrere Layer drin sein, das heisst, wenn ich jetzt mir eine OSM-Teil vorstelle, das heisst, ich habe den in den Straßenlayer, ich habe Gewässer und so weiter, alles in einer
Kachel drin enthalten. Die Geometrien, die werden einseits mal mit einem Puffer gespeichert, das ist ein Trick, den ich nachher noch ein bisschen erläutere, es ist sehr clever kodiert, sehr platzsparend, alles ist in Ganzzahlen kodiert und noch mit Six Second Coding einfach so platzsparend wie
möglich und das ist aber jetzt ganz wichtig zu realisieren, die Kacheln sind in Bildschirmkoordinaten, die Geometrien werden in Bildschirmkoordinaten ausgeliefert als Ganzzahlen, das heisst, wer sich jetzt vorgestellt hat, das ist einfach ein gekalter WFS, der liegt falsch, es sind nicht die echten
Daten oder die Originaldaten, sondern es sind aufbereitete Daten für die Darstellung, bei diesem MBOT-Standard. Es gibt Punkt, Linie, Polygon und zwar jeweils als Punkt, Multilinie, Multipolygon. Die Randprobleme, die werden wie gesagt
noch mit einem Buffertrick gelöst, also wenn man sich so vorstellt, man hat verschiedene Polygone und die überlappen die Kachelgrenzen, dann habe ich ja das Problem, wenn ich den Rand vom Polygon darstelle, ganz naiv,
dann kriege ich dann so Artefakte an den Kachelgrenzen und der Trick hier ist jetzt bei MBOT, dass man da einen Buffer macht, das heisst, wenn man die Polygone abschneidet, dann schneidet man sie außerhalb vom sichtbaren Bereich der Kachel ab und damit sind dann diese Artefakte nicht mehr sichtbar.
Aber was man sich bewusst sein muss, das Polygon ist zerschnitten, das heisst, ich habe zwei Geometrien, in der Kachel 1 habe ich einen Teil vom Polygon und in der Kachel 2 habe ich einen zweiten Teil vom Polygon und wenn ich jetzt quasi mit der Maus das selektieren will, dann muss ich schon was
programmieren, damit dann auch der zweite Teil vom Polygon mitselektiert wird. Das geht relativ einfach, das AP ist vorhanden und eben wenn ich jetzt die Feature ID einfüge, dann kann ich sagen, jetzt selektiere ich mir alles ein, das halt diese Feature ID hat, aber das ist halt der Nachteil vom Kachel.
Wie sehen die Dateigrössen aus? Ich habe jetzt hier ein Schweizer Beispiel, also mit OSM-Daten, etwa man kann sich vorstellen, also bis auf Gebäudeebene, Strassen, Namen, Bodenbedeckung und so weiter.
Das ist jetzt für eine Schweizer Stadt, die sind das 8 Mega, für die ganze Schweiz 400 Megabyte, die ganze Welt so, als Kachel sind das 44 Gigabyte. Das heisst, ich kenne jetzt die Werte für Deutschland nicht, also wenn ich hochrechne, werden es vielleicht, weiß nicht, 4 Gigabyte oder so sein für Deutschland und das ist schon eine Art Quantensprung, das heisst, ich kann jetzt wirklich,
ich habe eine Dateigröße, die ich auf mein Handy bringe, wo ich wirklich Offline-Anwendungen damit machen kann und ich habe quasi die Daten eines ganzen Landes bis auf Gebäudestufe drin, also das gibt wirklich neue
Möglichkeiten und das einfach dank diesem extrem komprimierten Format. Das waren jetzt die Daten selbst, die Kacheln und jetzt kommt die zweite Stufe, jetzt muss ich die Kacheln auch darstellen oder diese Vektoren darstellen. Da gibt es jetzt auch wieder verschiedene Möglichkeiten, es gibt von Mapbox eine
Styling-Sprache, die ist in JSON, wo ich diese Stile als JSON definieren kann, ein bisschen ähnlich zu Neues, wie wir vorher gesehen haben. Im Internet ist JSON halt der Standard. Die Viewer, die das direkt darstellen können,
ist Mapbox GLJS, also Mapbox hat eine eigene Karten-Viewer-Bibliothek gemacht für diese Vektortiles. Leaflet hat ein Plugin von Mapbox, das auch diese Stile in Leaflet darstellen kann, da ist aber der Zustand ein bisschen seltsam, weil es steht da im GitHub-Repository, es wird
nicht offiziell unterstützt von Mapbox, aber trotzdem wird es immer weiter gepflegt, weiß man nicht so recht, was man jetzt damit anfangen kann. Und für Openlayers, das ist in der Gießwelt interessant, da gibt es eine Zusatzbibliothek, die diese Mapbox-Styles auf Openlayer-Stile ummappt.
Das ist nicht ganz verlustfrei, aber funktioniert sehr gut. Für diese Mapbox-Stile gibt es auch einen Open-Source-Editor, das ist Matt Putnik, da gab es eine Crowdfunding-Aktion, ich probiere den am Schluss noch zu zeigen, wenn ich genug Zeit habe.
Also das ist Mapbox-Styles und dann haben ja diese Viewer, Openlayers und Leaflet auch noch eigene Styling-Möglichkeiten, die eben nicht nur auf Mapbox-Vektoren zugeschnitten sind, sondern alle Vektoren, das heißt, wenn ich ein WFS einbinde im Viewer, dann muss ich ja den auch gleichzeitig stylen und das kann Openlayers mal einerseits und
Leaflet kann es auch mit dem Vector Grid Plugin, kann es Mapbox-Tiles laden und die dann mit den Standardmitteln von Leaflet renden. Der Unterschied ist, dass das im HTML Canvas geschieht, dieses Rendering.
Das hat Vor- und Nachteile, also jetzt im Gegensatz zu Mapbox-GLJ-Viewer, der rendet mit WebGL und WebGL ist viel performanter, das heißt, ich kann grosse Anzahlen Vektor sehr performant renden, ich kann diese 3D-Geschichten machen, ich kann schöne Animationen machen, aber nur für moderne Browser.
Es funktioniert recht gut, aktuelle Browser, auch mobile, funktioniert es, aber wenn ich halt wirklich ältere Browser unterstützen will, dann kann ich da ein Problem kriegen und da ist jetzt Openlayers und Leaflets in dem Sinn besser, sie unterstützen auch alte Browser, aber umgekehrt haben sie
natürlich eben das Problem, für ganz grosse Datenmengen sind sie nicht mehr so gut und auch vielleicht zum Teil die Rendering-Qualität, die nicht gleich gut ist. Aber einen grossen Vorteil haben sie, diese Viewer, dass sie auch andere Projektionen als den Mercator unterstützen, also Mapbox-GLJs
unterstützt eigentlich nur Mercator-Projektionen, die ich auch selbst euch vorgezeigt habe, das sind eigentlich neutrale Bildschirm-Pixel-Punkte, das heißt, da ist nicht fixiert, dass das Mercator sein muss, das kann eigentlich
irgendwas sein, in irgendein Teil-Schema, aber der Viewer muss es da natürlich unterstützen und da sind jetzt Openlayers und Leaflets darauf vorbereitet auch andere Projektionen darzustellen. Dann zeige ich zuerst mal, wie Mapbox-GLJs aussieht, also das ist jetzt ein
kleines Code-Snippet, wie man einen Viewer, eine Karte erstellt, sind wenige Zeilen, also ich muss sagen, wie heisst der Div im HTML, dann gebe ich einen Style an, wo dann die ganze Beschreibung Datenquellen
plus-Stil drin ist und jetzt hier zum Beispiel ein Zentrum und ein Start-Zoom, das ist ähnlich wie bei anderen JavaScript-Map-Bibliotheken und dann dieses Style-Chasing, das ist hier jetzt mal der Beginn, gibt einerseits
Version, Name und dann gibt es Sprites und Glyphs, komme ich darauf zurück und es gibt Quellen und Layer, also das ist der Style, bei den Quellen gibt es entweder Teil-Chasing Endpoints, das heisst da wird die Quelle
nicht direkt definiert, sondern da wird auf ein zweites Chasing verwiesen, wo die Datenquellen spezifiziert sind, das ist dann dieses Style-Chasing oder im zweiten Fall wird direkt eine URL angegeben, wo ich drin gerade sage, wo sind schlussendlich die Teils, also diese
PBF-Kacheln abgelegt, unter welcher URL, im Style-Chasing steht das auch drin, zum Teil noch ein bisschen ausführlicher oder mit noch Zusatzinformationen, was auch hier drin steht, ist bei den Datenquellen, ich kann so Max-Zoom angeben, was dann bedeutet, dass ab einer gewissen Zoom-Stufe diese Quellen nicht mehr geladen werden.
Es werden noch weitere Datenquellen unterstützt, Geo-Chasing zum Beispiel, aber auch Raster-Kacheln, entweder XYZ oder TMS, also ich kann zum Beispiel ein OSM-Raster-Layer einbinden oder auch WMS, einfaches
werden Kacheln geladen, d.h. es werden B-Box-Abfragen auf Teilgrenzen gemacht. Es gibt noch weitere Image-Video-Canvas, jetzt hier nicht so relevant, das sind die Datenquellen, dann brauche ich noch weitere Dinge, ich brauche
sogenannte Sprites und zwar für Icons, wenn ich Punkt-Icons darstellen will oder auch Füllmuster, dann werden die als Sprites gespeichert, da werden verschiedene kleine Bilder kombiniert zu einer größeren Datei und das
zweite sind die Fonts, also alle Schriften muss ich auch in einem Protobuf-Format laden, das nennt sich dann Gleeve und die kann ich auch
auf die URL von Peter verweisen, der das reverse-ingeniert hat, die Spezifikation, wie man jetzt eigene Sprites macht, wie man eigene Fonts macht, das ist von Mapbox selbst nicht so gut dokumentiert, aber auf Open-Map-Tiles-Org ist das aufgearbeitet. Okay, dann haben wir mal
die Datenquellen und noch die zusätzlichen Dinge, die wir brauchen und jetzt komme ich zum eigentlichen Styling, d.h. ich nehme jetzt den Bewerber, gebe dem einen Namen, das ist diese ID, der Hunger ist
gross, okay. Ich zeige jetzt schnell, es geht ja darum, jetzt ein Bild zu erhalten, wie passiert dieser Styling, also man sieht einerseits diese Paint-Fill-Colors, also wirklich so Jason, ich habe viele Styles, es gibt eine Anzahl Rendering-Typen, Fill, Line, Symbol, Circle und noch spezielle
wie Heatmap Extrusion oder auch Raster und es gibt dann Attribut-gestörte Styles, ich kann Filtern machen, basieren auf Attributen, die kann ich dann mit Javascript auch aktualisieren, das haben wir in der Demo gesehen, es gibt Resolution-Based Styling, d.h. Zoom-Stufen-abhängig
sage ich wie, mein Layer soll nur bei bestimmten Zoom-Stufen gerendert werden und es gibt Funktionen, Zoom-abhängige Funktionen, da sage ich bei Zoom 5 soll der Kreis 1 Pixel gross sein, bei Zoom 10 2 Pixel gross und dazwischen wird interpoliert, das sind Funktionen, dann gibt es
Property-Based Funktionen, da sage ich, nicht der Zoom ist der Input, sondern das Property Temperature hier jetzt, die Temperatur, wenn sie 0 ist, dann blau, Temperatur 100 dann rot und dazwischen wird Interpoliert und da gibt es die Kombination davon, Zoom and Property
und jetzt ganz neu gibt es noch Expressions, da habe ich im innersten Bereich, sieht man Get Population, d.h. ich lese das Attribut aus und teile das durch 10.000 und nehme noch die Wurzel draus, also ich habe hier recht mächtige Funktionen. Bei Open-Layers werden
diese Styles konvertiert, wie ich gesagt habe, mit diesem Oil Map Box zu Styles, dafür hat man alle Features von Open-Layers und dann noch ganz schnell der letzte Block, wie mache ich eigene Vector-Tiles, also ich muss sie klippen, ich muss sie generalisieren und schlussendlich MBOTs machen, da
gibt es eine ganze Reihe von Software, die eigene Daten unterstützen, z.B. von Postgees. Unten ist die URL, da ist die ganze Sammlung, also das ist eine sehr grosse Seite, was alles unterstützt wird. Ganz neu, das wissen vielleicht noch nicht alle, GDAL wird in der nächsten Version auch eine Unterstützung haben für Vector-Teilgenierung, d.h.
man kann dann Ogre to Ogre machen und auch Geo-Server unterstützt und dann gibt es spezialisierte Programme. Das Hosting ist zu ständig, ich muss meine Files auf einen Web-Server legen und fertig. Und die interaktiven
Tools kann ich jetzt leider nicht mehr zeigen, Map.nic kann man sich merken, das ist einfach ein grafisches Tool, um diese JSON Styles zu machen. Und Mapbox selbst hat ein nicht-OSS-Tool, wenn man mit ihrem Dienst
arbeitet, dann haben sie das Mapbox Studio, das dann auch viel bequemere Funktionalitäten anbietet. Aber das heisst, heute arbeitet man, wenn man jetzt mit diesen Standards oder dieser Spezifikation arbeiten will, dann arbeitet man mit JSON und Map.nic, um sich solche Styles zu machen.
Gut, dann schließe ich hier, vielen Dank.