Vektorkacheln
Vektorkachel-Datenquellen werden verwendet, um 2D-Geodaten in kleinen, vorgerenderten Kacheln bereitzustellen, die effizient geladen und in Webkarten angezeigt werden können. Im Gegensatz zu Rasterkacheln, die Bilder sind, enthalten Vektorkacheln rohe Geodaten (Punkte, Linien, Polygone), die clientseitig gestylt und gerendert werden können. Dies ermöglicht dynamischere und interaktivere Karten, da das Styling der Features geändert werden kann, ohne die Kacheln serverseitig neu rendern zu müssen. Darüber hinaus sind Vektorkacheln-Datenquellen in der Karte anklickbar, sodass „FeatureInfo" zur Layerdefinition in VC Map hinzugefügt werden kann.
Allgemeine Einstellungen
| Option | Beschreibung |
|---|---|
Name |
Name der Datenquelle. |
Beschreibung |
Beschreibung der Datenquelle (optional). |
Ausdehung |
Beschreibt die Bounding Box der Daten. |
URI |
URI, auf der die Datenquelle liegt. |
Weitere Erläuterung zur Bounding Box |
Die Bounding Box muss zur Ausdehnung der bereitgestellten / angeforderten Daten passen. Ist die Bounding Box zu klein, werden die Daten in der Karte nicht korrekt angezeigt bzw. auf die angegebene Bounding Box zugeschnitten. Ist die Bounding Box zu groß, fordert der Algorithmus mehr Daten an, als verfügbar sind, was zu unnötigen und zeitaufwändigen Anfragen führt, die letztendlich die Gesamtperformance der Karte beeinträchtigen. |
||
Minimales Level |
Die Mindestebene, auf der die Features in der Karte gerendert werden.
|
||
Maximales Level |
Die maximale Ebene, bis zu der die Features in der Karte gerendert werden. |
||
Tile Provider |
Wählen des Kachelanbieters für die Vektorkacheln. Die folgenden Optionen stehen zur Verfügung:
|
||
ID-Eigenschaft |
Hier kann der Eigenschaftsname der Eingabedaten angegeben werden, der den eindeutigen Bezeichner für jedes Feature enthält. Diese Eigenschaft wird verwendet, um jedem Objekt eine eindeutige ID zuzuweisen. Wenn diese Option nicht angegeben wird, wird für jedes Feature automatisch eine eindeutige ID generiert. |
||
Basislevels |
Die Basisebene definiert die Ebene, auf der die Vektorkacheln erstellt bzw. angefordert werden. Die Basisebene bestimmt den Detaillierungsgrad und die Anzahl der Kacheln, die für die Vektordaten erzeugt werden. Die Basisebene sollte basierend auf dem gewünschten Detaillierungsgrad und den Performanceanforderungen der Anwendung gewählt werden. Eine höhere Basisebene ergibt detailliertere Kacheln, erfordert jedoch möglicherweise mehr Speicher und Rechenleistung, während eine niedrigere Basisebene weniger detaillierte Kacheln liefert, aber für größere Datensätze oder niedrigere Zoomstufen effizienter sein kann. Je nach gewähltem Kachelanbieter kann entweder nur eine Basisebene oder mehrere definiert werden. Wenn mehrere definiert werden können, fordert die Implementierung Daten auf jeder angegebenen Basisebene an bzw. ruft diese ab. |
||
EPSG-Code |
Nur gültig für den FlatGeobuf-Kachelanbieter – Angabe des EPSG-Codes des im FlatGeobuf-Datensatz verwendeten Koordinatenreferenzsystems (KRS) an. Dies ist erforderlich, um sicherzustellen, dass die Daten korrekt georeferenziert und in der VC Map angezeigt werden. Der EPSG-Code sollte als ganzzahliger Wert angegeben werden, z. B. „4326" für WGS 84. |
||
Proj4-String |
Nur gültig für den FlatGeobuf-Kachelanbieter – Angabe des Proj4-String des im FlatGeobuf-Datensatz verwendeten Koordinatenreferenzsystems (KRS) an. Dies ist erforderlich, um sicherzustellen, dass die Daten korrekt georeferenziert und in der VC Map angezeigt werden. Der Proj4-String sollte im Standard-Proj4-Format angegeben werden, z. B. „+proj=longlat +datum=WGS84 +no_defs" für WGS 84. Alternativ kann auf |
||
Stil |
Wenn diese Option aktiviert ist, kann ein VC-Map-Style auf die Vektorkacheln angewendet werden. Der Style muss als JSON-Datei im Eingabefeld bereitgestellt werden. Der Style wird auf die Vektorkacheln angewendet, wenn diese in der Karte gerendert werden, und ermöglicht die Anpassung des Erscheinungsbilds der Vektordaten basierend auf den definierten Style-Regeln. Weitere Informationen können hier gefunden werden: Stil-Informationen |
| Für mehr Informationen darüber, wie das Rendering von Features in VC Map erfolgt: VC Map Rendering |
URL-Vorlagen-Kachelanbieter
Der URLTemplateTileProvider erstellt einen Vektorkachel-Layer aus einem URL-basierten GeoJSON. Dieser Kachelanbieter eignet sich hervorragend für dienstbasierte Abfragen, wie z. B. WFS. Der Dienst muss die Daten lediglich als GeoJSON ausgeben und räumliche Abfragen unterstützen. Wenn ein Anbieter eine URL-Vorlage mit vorab gekachelten GeoJSON-Dateien bereitstellt, kann dieser Kachelanbietertyp verwendet werden. Ein Beispielaufruf wäre folgender: http://myFeatureSource/layer/getFeatures?minx={minx}&miny={miny}&maxx={maxx}&maxy={maxy}. Die Platzhalter in der URL-Vorlage werden beim Stellen von Anfragen für Vektorkacheln durch die tatsächlichen Kachelkoordinaten ersetzt. Dies ermöglicht das dynamische Abrufen von Vektorkacheln basierend auf der aktuellen Kartenansicht und Zoomstufe.
Eine gültige URI im URI-Feld sollte folgende Form haben: http://myFeatureSource/layer/getFeatures?minx={minx}&miny={miny}&maxx={maxx}&maxy={maxy}
Vorteil: Dieser Kachelanbieter eignet sich für dienstbasierte Abfragen, wie z. B. WFS, bei denen der Dienst Daten im GeoJSON-Format ausgeben und räumliche Abfragen unterstützen kann. Er ermöglicht das dynamische Abrufen von Vektorkacheln basierend auf der aktuellen Kartenansicht und Zoomstufe. Schnelle Anzeige größerer Vektordatensätze nach dem Prinzip „What U See is what U get" & viewportbezogene Datenanforderung & funktioniert hervorragend mit WFS-Diensten.
Nachteil: Die Performance dieses Kachelanbieters hängt von der Performance des zugrunde liegenden Dienstes und seiner Fähigkeit ab, räumliche Abfragen effizient zu verarbeiten. Wenn der Dienst langsam ist oder nicht für räumliche Abfragen optimiert wurde, kann dies zu längeren Ladezeiten für Vektorkacheln in der Karte führen.
Es ist zu beachten, dass der URL-Vorlagen-Kachelanbieter erwartet, dass die Daten im GeoJSON-Format bereitgestellt werden. Wenn die Daten in einem anderen Format vorliegen, muss möglicherweise ein Dienst eingerichtet werden, der die Daten in das GeoJSON-Format konvertieren und räumliche Abfragen unterstützen kann, um diesen Kachelanbieter effektiv nutzen zu können. Außerdem müssen die Koordinaten als WGS84-Koordinaten EPSG:4326 angegeben werden.
|
Statischer GeoJSON-Kachelanbieter
Der StaticGeojsonTileProvider erstellt einen Vektorkachel-Layer aus einer statischen GeoJSON-Datei. Die Daten werden vollständig heruntergeladen, aber durch das Laden nur des angezeigten Kartenausschnitts mit besserer Performance gerendert. Im Vergleich zur klassischen GeoJSON-Datenquelle bietet diese Methode eine bessere Performance. Die GeoJSON-Datei muss über eine URI bereitgestellt werden, und die URI muss auf *.geojson enden.
Eine gültige URI im URI-Feld sieht folgendermaßen aus: https://raw.githubusercontent.com/…/california.geojson.
Vorteil: Schnelle Anzeige größerer GeoJSON-Dateien in 2D & 3D & Anwendung individueller Styles.
Nachteil: Die vollständige Datei muss immer zuerst in den Client geladen werden. Je nach Größe / Menge der Daten kann das anfängliche Laden der Daten daher eine Weile dauern (abhängig von der Internetbandbreite).
MVT-Kachelanbieter
Der MVT-Kachelanbieter (Mapbox Vector Tile) ermöglicht die Bereitstellung von Vektorkacheln im MVT- oder PBF-Format. Dieses Format ist für die effiziente Übertragung und das Rendering von Vektordaten in Webkarten optimiert. Vektorkacheln werden als Google Protobufs (PBF) kodiert, die die Serialisierung strukturierter Daten ermöglichen. Der Klarheit halber verwenden Mapbox-Vektorkacheln die Dateiendung .mvt. Die Spezifikationsdetails orientieren sich weitgehend an den im Basis-.proto-File implementierten Regeln. Weitere Details zu Mapbox-Vektorkacheln sind hier (https://docs.mapbox.com/vector-tiles/specification/) zu finden.
Mehrere Basisebenen können der Datenquelle bereitgestellt werden, z. B.:
"baseLevels": [13,14,15], ⇐ Definition der Ebenen, auf denen Daten angefordert werden und Kachelebenen bestimmt werden.
Eine gültige URI im URI-Feld sollte folgende Form haben: /datasource-data/XXX/{z}/{x}/{y}.mvt oder /datasource-data/XXX/{z}/{x}/{y}.pbf oder https://mydataXXX/{z}/{x}/{y}.pbf oder https://mydataXXX/{z}/{x}/{y}.mvt
Vorteil: Schnelle Anzeige größerer Vektordateien & viewportbezogener Datenabruf & kleinere Daten-Downloads durch das PBF-Format.
Nachteil: Der MVT-Kachelanbieter erwartet, dass die Daten im MVT-Format bereitgestellt werden.
IMPORTANT: Es ist zu beachten, dass der URL-Vorlagen-Kachelanbieter erwartet, dass die Daten im GeoJSON-Format bereitgestellt werden. Wenn die Daten in einem anderen Format vorliegen, muss möglicherweise ein Dienst eingerichtet werden, der die Daten in das MVT-Format konvertieren kann, um diesen Kachelanbieter effektiv nutzen zu können. Außerdem müssen die Koordinaten im Web-Mercator-Format EPSG:3857 angegeben werden.
| PBF-/MVT-Dateien müssen möglicherweise berechnet werden oder werden dienstbasiert bereitgestellt. FME kann MVT-Kacheln ebenfalls schreiben! Mapbox-Styling wird von virtualcitySYSTEMS nicht unterstützt. |
FlatGeobuf-Kachelanbieter
FlatGeobuf ist ein offenes 2D-Datenformat, das entwickelt wurde, um große, heterogene 2D-Vektorgeodata effizient zu streamen. Es basiert auf der FlatBuffers-Serialisierungsbibliothek und verwendet einen räumlichen Index, um schnelle Abfragen und das Streaming von Geodaten zu ermöglichen. Die FlatGeobuf-Datenquelle ermöglicht die Integration von FlatGeobuf-Daten in den VC Publisher und damit in die VC Map. Der FlatGeobuf-Kachelanbieter ermöglicht die Bereitstellung von Vektorkacheln im FlatGeobuf-Format. Dieses Format ist für die effiziente Speicherung und den Abruf von Geodaten ausgelegt und eignet sich daher für die Bereitstellung von Vektorkacheln in Webkarten.
Die URI muss auf eine FlatGeobuf-Datei verweisen, und die URI muss auf „.fgb" enden. Eine gültige URI sieht folgendermaßen aus: https://github.com/…/countries.fgb.
Vorteil: Schnellere Anzeige größerer Vektordateien in 2D & 3D im Vergleich zur „normalen FlatGeoBuf-Datenquelle" & Anwendung individueller Styles.
Nachteil: Der FlatGeobuf-Kachelanbieter erwartet, dass die Daten im FlatGeobuf-Format bereitgestellt werden. IMPORTANT: Es ist zu beachten, dass der URL-Vorlagen-Kachelanbieter erwartet, dass die Daten im GeoJSON-Format bereitgestellt werden. Wenn die Daten in einem anderen Format vorliegen, muss möglicherweise ein Dienst eingerichtet werden, der die Daten in das FlatGeobuf-Format konvertieren kann, um diesen Kachelanbieter effektiv nutzen zu können.
Styles
Styles können als Vektor-Styles auf Basis von OpenLayers (https://openlayers.org/en/latest/examples/?q=styles) oder als deklarative Styles auf Basis von Cesium 3D Tiles Styling https://github.com/CesiumGS/3d-tiles/tree/main/specification/Styling definiert werden.
Der Style im folgenden Beispiel verwendet eine Legende zur Anzeige in der Karte sowie das Attribut „media" jedes Features, um die Features zu stylen. Nachfolgend ist ein ein Legendenelement des Styles dargestellt. Es definiert eine Füllfarbe, eine Umrissfarbe und einen Titel. Das Ergebnis ist ein rechteckiges Feld mit der angegebenen Füllfarbe und dem Umriss in der angegebenen Farbe und Breite. Rechts neben dem Rechteck wird der angegebene Titel in derselben Zeile angezeigt. Die verwendeten Farben für Umriss und Füllung entsprechen der Style-Definition, siehe unten.
{
"type": "FillLegendRow",
"fill": {
"color": "#85b66f"
},
"stroke": {
"color": "#232323",
"width": 1
},
"title": "< 5 min"
},
Da nicht garantiert werden kann, dass die Werte der Eigenschaft „media" Zahlen sind, werden die Werte in Zahlen umgewandelt und anschließend verglichen. Nachfolgend ist ein Auszug der Style-Definition dargestellt. "strokeColor": "color('#232323', 1)" definiert die Umrissfarbe für alle Features. Unter „color conditions" sind die Bedingungen für die Feature-Einfärbung angegeben. Wenn "Number(${attributes.media}) < 5" den Wert „true" ergibt, wird die Farbe des Features auf "color('#85b66f', 0.8)" gesetzt.
"strokeColor": "color('#232323', 1)",
"color": {
"conditions": [
[
"Number(${attributes.media}) < 5",
"color('#85b66f', 0.8)"
]
]
}
Klicken zum Öffnen des vollständigen Beispiels eines deklarativen Styles für Vektorkacheln in der VC Map
{
"type": "DeclarativeStyleItem",
"name": "walkability_overall",
"properties": {
"title": "walkability, overall",
"legend": [
{
"type": "StyleLegendItem",
"colNr": 1,
"rows": [
{
"type": "FillLegendRow",
"fill": {
"color": "#85b66f"
},
"stroke": {
"color": "#232323",
"width": 1
},
"title": "< 5 min"
},
{
"type": "FillLegendRow",
"fill": {
"color": "#48f882"
},
"stroke": {
"color": "#232323",
"width": 1
},
"title": "5 - 10 min"
},
{
"type": "FillLegendRow",
"fill": {
"color": "#b2df8a"
},
"stroke": {
"color": "#232323",
"width": 1
},
"title": "10 - 15 min"
},
{
"type": "FillLegendRow",
"fill": {
"color": "#e2dc38"
},
"stroke": {
"color": "#232323",
"width": 1
},
"title": "15 - 20 min"
},
{
"type": "FillLegendRow",
"fill": {
"color": "#fb9938"
},
"stroke": {
"color": "#232323",
"width": 1
},
"title": "20 - 25 min"
},
{
"type": "FillLegendRow",
"fill": {
"color": "#e23b38"
},
"stroke": {
"color": "#232323",
"width": 1
},
"title": "25 - 30 min"
},
{
"type": "FillLegendRow",
"fill": {
"color": "#ab1446"
},
"stroke": {
"color": "#232323",
"width": 1
},
"title": "30 - 60 min"
},
{
"type": "FillLegendRow",
"fill": {
"color": "#7c7673"
},
"stroke": {
"color": "#232323",
"width": 1
},
"title": "> 60 min"
}
]
}
]
},
"declarativeStyle": {
"show": "true",
"strokeColor": "color('#232323', 1)",
"color": {
"conditions": [
[
"Number(${attributes.media}) < 5",
"color('#85b66f', 0.8)"
],
[
"Number(${attributes.media}) <= 10",
"color('#48f882', 0.8)"
],
[
"Number(${attributes.media}) <= 15",
"color('#b2df8a', 0.8)"
],
[
"Number(${attributes.media}) <= 20",
"color('#e2dc38', 0.8)"
],
[
"Number(${attributes.media}) <= 25",
"color('#fb9938', 0.8)"
],
[
"Number(${attributes.media}) <= 30",
"color('#e23b38', 0.8)"
],
[
"Number(${attributes.media}) < 60",
"color('#ab1446', 0.8)"
],
[
"Number(${attributes.media}) >= 60",
"color('#7c7673', 0.8)"
]
]
}
}
}
Weitere Informationen zu Styles sind hier zu finden: VC Map Styles
Rendering in VC Map
Vektorkacheln-Datenquellen können in VC Map auf zwei verschiedene Arten gerendert werden. Der Standard-Rendering-Pfad ist auf „raster" gesetzt, kann aber auch auf „primitive" umgestellt werden.
Raster-Renderer: Der Raster-Renderer erstellt drapierte Bilder aus den über die Kachelanbieter abgerufenen Vektor-Features und wendet das definierte Styling an. Diese Methode ist beim Rendern und Anzeigen der Features sehr schnell. Es werden nur sichtbare Features in der Karte gerendert! Features sind anklickbar und „FeatureInfo" kann angewendet werden. Der Nachteil ist, dass Features nicht als Vektorgeometrien behandelt werden und daher keine Vektoreigenschaften und 3D-Styles (3D-Pins oder 3D-Platzmarker) angewendet werden können.
Primitive-Renderer: Der Primitive-Renderer rendert die Features als Vektor-Features, und daher können Vektoreigenschaften und 3D-Styles (3D-Pins oder 3D-Platzmarker) angewendet werden. Features sind ebenfalls anklickbar und „FeatureInfo" kann angewendet werden. Der Nachteil ist, dass aufgrund des höheren Renderaufwands die Kartenperformance deutlich geringer sein wird als beim „Raster-Renderer".
Vorgehensweise: Im VC Map Config-Editor des Layers muss "renderer": "primitive" zur Layerdefinition hinzugefügt werden, um den Primitive-Renderer zu aktivieren.
Datenvorschau
Die Datenvorschau ermöglicht eine visuelle Kontrolle der konfigurierten Datenquelle vor der Veröffentlichung. Sie zeigt die Daten im Kartenfenster in der gewählten Projektion und innerhalb des definierten Ausdehnungsbereichs an. Nutzer können die Karte interaktiv verschieben und zoomen, um die Darstellung zu prüfen.
Änderungen an der Datenquelle oder der Ausdehnung werden nach Klick auf "Karte neu laden" in die Vorschau übernommen.