Tilesspecstableimplmature
Veröffentlichen von Geodaten als Kacheln.
Umfang
Dieser Baustein unterstützt Kacheln, die aus Features abgeleitet sind, oder Kacheln, die von einer externen Quelle bereitgestellt werden.
Die unterstützten Kachelformate sind:
- MVT (Mapbox Vector Tile)
- PNG
- WebP
- JPEG
- TIFF
Für Kacheln, die aus Features abgeleitet werden, wird nur Mapbox Vector Tiles als Kachelformat unterstützt sowie PNG-Kartenkacheln, die aus diesen Vektorkacheln unter Verwendung eines oder mehrerer MapLibre Styles abgeleitet wurden.
Alle Kacheln einer API kommen vom selben Tile-Provider.
Konformitätsklassen
Der Baustein implementiert die Konformitätsklassen "Core", "TileSet", "TileSets List", "Dataset TileSets", "GeoData TileSets", "Collections Selection", "DateTime", "OpenAPI Specification 3.0 API definition", "Mapbox Vector Tiles", "PNG", "JPEG" und "TIFF" des Standards OGC API - Tiles - Part 1: Core 1.0 und die Konformitätsklassen "TileSetMetadata", "TileMatrixSetLimits" und "JSONTileMatrixSetLimits" des Standards OGC Two Dimensional Tile Matrix Set and Tile Set Metadata 2.0.
Operationen
Ressource | Pfad | Methoden | Formate | Beschreibung |
---|---|---|---|---|
Dataset Vector Tilesets | tiles | GET | HTML, JSON | Zugriff auf die Vektor-Kachelsätze zum Datensatz |
Dataset Vector Tileset | tiles/{tileMatrixSetId} | GET | JSON, TileJSON | Zugriff auf einen Kachelsatz zum Datensatz im Format Mapbox Vector Tiles |
Dataset Vector Tiles | tiles/{tileMatrixSetId}/{tileMatrix}/{tileRow}/{tileCol} | GET | MVT | Zugriff auf Kacheln eines Datensatzes im Format Mapbox Vector Tiles. |
Collection Vector Tilesets | collections/{collectionId}/tiles | GET | HTML, JSON | Zugriff auf Vektor-Kachelsätze einer Feature Collection |
Collection Vector Tileset | collections/{collectionId}/tiles/{tileMatrixSetId} | GET | JSON, TileJSON | Zugriff auf einen Vector-Kachelsatz einer Feature Collection |
Collection Vector Tiles | collections/{collectionId}/tiles/{tileMatrixSetId}/{tileMatrix}/{tileRow}/{tileCol} | GET | MVT | Zugriff auf Kacheln einer Feature Collection. |
Pfad-Parameter
Name | Ressourcen | Beschreibung |
---|---|---|
collectionId | Collection Tilesets, Collection Tileset, Collection Tile | Der Identifikator der Feature Collection. |
tileMatrixSetId | Dataset Tilesets, Dataset Tileset, Dataset Tile, Collection Tilesets, Collection Tileset, Collection Tile | Der Identifikator des Kachelschemas. |
tileMatrix | Dataset Tile, Collection Tile | Die Zoomstufe der Kachel im Kachelschema. |
tileRow | Dataset Tile, Collection Tile | Die Zeile der Kachel auf der Zoomstufe im Kachelschema. |
tileCol | Dataset Tile, Collection Tile | Die Spalte der Kachel auf der Zoomstufe im Kachelschema. |
Query Parameter
Name | Ressourcen | Beschreibung |
---|---|---|
collections | Dataset Tile | Die Feature Collections des Datensatzes, die in die Kachel aufgenommen werden sollen. Der Parameterwert ist eine durch Kommata getrennte Liste von Identifikatoren der Feature Collections. |
datetime | Dataset Tile, Collection Tile | Es werden nur Features in die Kachel aufgenommen, deren primäre zeitliche Eigenschaft den angegebenen Wert (Zeitstempel, Datum oder Intervall) schneidet. |
f | Dataset Tile | Wählt das Ausgabeformat der Antwort. Wenn kein Wert angegeben wird, gelten die Standard-HTTP Regeln, d.h. der "Accept"-Header wird zur Bestimmung des Formats verwendet. |
f | Collection Tile | Wählt das Ausgabeformat der Antwort. Wenn kein Wert angegeben wird, gelten die Standard-HTTP Regeln, d.h. der "Accept"-Header wird zur Bestimmung des Formats verwendet. |
f | Dataset Tileset, Collection Tileset | Wählt das Ausgabeformat der Antwort. Wenn kein Wert angegeben wird, gelten die Standard-HTTP Regeln, d.h. der "Accept"-Header wird zur Bestimmung des Formats verwendet. |
f | Dataset Tilesets, Collection Tilesets | Wählt das Ausgabeformat der Antwort. Wenn kein Wert angegeben wird, gelten die Standard-HTTP Regeln, d.h. der "Accept"-Header wird zur Bestimmung des Formats verwendet. |
limit | Dataset Tile, Collection Tile | Der Parameter begrenzt die Anzahl der Features, die in die Kachel aufgenommen werden. |
Konfiguration
Voraussetzungen
Der Baustein Tile Matrix Sets muss aktiviert sein.
Storage
Der Tile-Cache liegt im Store als Ressource mit dem Pfad tiles/{apiId}
.
Wenn die Daten zu einer API oder Kachelkonfiguration geändert wurden, dann sollte das Cache-Verzeichnis für die API gelöscht werden, damit der Cache mit den aktualisierten Daten oder Regeln neu aufgebaut wird.
Optionen
Name | Default | Beschreibung | Typ | Seit |
---|---|---|---|---|
buildingBlock | Immer TILES . | string | v3.1 | |
enabled | false | Soll der Baustein aktiviert werden? | boolean | v3.1 |
transformations | {} | Property-Transformationen erfolgen bei der Aufbereitung der Daten für die Rückgabe über die API. Die Datenhaltung selbst bleibt unverändert. Alle Filterausdrücke (siehe queryables in Features) wirken unabhängig von etwaigen Transformationen bei der Ausgabe und müssen auf der Basis der Werte in der Datenhaltung formuliert sein - die Transformationen sind i.A. nicht umkehrbar und eine Berücksichtigung der inversen Transformationen bei Filterausdrücken wäre kompliziert und nur unvollständig möglich. Insofern sollten Eigenschaften, die queryable sein sollen, möglichst bereits in der Datenquelle transformiert sein. Eine Ausnahme sind typischerweise Transformationen in der HTML-Ausgabe, wo direkte Lesbarkeit i.d.R. wichtiger ist als die Filtermöglichkeit. | object | v3.1 |
defaultProfiles | {} | Erlaubt es, den Standardwert des Profile-Parameters für ein bestimmtes Format zu ändern. Der Schlüssel ist die Art des Profils, z. B. rel oder val . Der Wert ist der Standardprofilwert, z. B. rel-as-uri oder val-as-title . Wenn nur einige oder keine Profilarten festgelegt sind, gelten die Anwendungsstandards. | object | v4.2 |
maxMultiplicity | 3 | Wenn das Feature-Schema Array-Eigenschaften enthält, werden für jede Array-Eigenschaft maxMultiplicity Eigenschaften erstellt. Wenn eine Instanz mehrere Werte in einem Array hat, werden nur die ersten Werte in die Daten aufgenommen. | number | v3.2 |
caching | {} | Setzt feste Werte für HTTP-Caching-Header für die Ressourcen. | object | v3.1 |
tileProvider | null | Spezifiziert die Datenquelle für die Kacheln, siehe Tile-Provider. | string | v4.0 |
tileProviderId | null | Deprecated Siehe tileProvider . | string | v4.0 |
tileProviderTileset | __all__ | {collectionId} | Spezifiziert das Tileset vom Tile-Provider das verwendet werden soll. Der Default ist __all__ für Dataset Tiles und {collectionId} für Collection Tiles. | string | v3.3 |
tileSetEncodings | [ "JSON", "TileJSON" ] | Steuert, welche Formate für die Tileset-Ressourcen unterstützt werden sollen. Zur Verfügung stehen OGC TileSetMetadata ("JSON") und TileJSON ("TileJSON"). | array | v3.1 |
mapClientType | MAP_LIBRE | Auswahl des zu verwendenden Map-Clients in der HTML-Ausgabe. Der Standard ist MapLibre GL JS, unterstützt wird nur das Kachelschema "WebMercatorQuad". Alternativ wird als auch OPEN_LAYERS unterstützt (OpenLayers). Die Unterstützung von Open Layers ist nur sinnvoll, wenn in der HTML Ausgabe auch andere der vordefinierten Kachelschemas unterstützt werden sollen. Bei OPEN_LAYERS werden keine Styles unterstützt. | string | v3.1 |
style | DEFAULT | Ein Style im Style-Repository, der standardmäßig in Karten mit den Tiles verwendet werden soll. Bei DEFAULT wird der defaultStyle aus dem HTML-Baustein verwendet. Handelt es sich bei dem Kartenclient um MapLibre, muss der Style im Mapbox-Format verfügbar sein. Wenn der Style auf NONE gesetzt ist, wird ein einfacher Wireframe Style mit OpenStreetMap als Basiskarte verwendet. Handelt es sich bei dem Kartenclient um Open Layers, wird die Angabe ignoriert. | string | v3.1 |
removeZoomLevelConstraints | false | Bei true werden aus dem in style angegebenen Style die minzoom - und maxzoom -Angaben bei den Layer-Objekten entfernt, damit die Features in allen Zoomstufen angezeigt werden. Diese Option sollte nicht gewählt werden, wenn der Style unterschiedliche Präsentationen je nach Zoomstufe vorsieht, da ansonsten alle Layer auf allen Zoomstufen gleichzeitig angezeigt werden. | boolean | v3.1 |
wmts | NONE | Ergänzt Unterstützung für OGC WMTS 1.0.0 (HTTP RESTful) für Kachelsätze. Bei NONE wird WMTS nicht unterstützt, bei ALL werden alle Rasterkachelsätze veröffentlicht. DATASET veröffentlicht alle Rasterkachelsätze zum Datensatz (d.h., keine Kachelsätze von einzelnen Feature-Collections) und COLLECTIONS alle Rasterkachelsätze zu Feature-Collections. | string | v3.1 |
Beispiele
Beispiel für die Angaben in der Konfigurationsdatei aus der API für Weinlagen in Rheinland-Pfalz.
Auf API-Ebene (da es nur eine einzige Objektart gibt, ist das Tileset des Datensatzes dasselbe wie das Tileset der einzigen Collection):
- buildingBlock: TILES
enabled: true
tileProviderTileset: vineyards
Der Tile Provider, mit der Konfiguration für Caches (zwei Caches, ein unveränderlicher Cache bis zur Ebene 12 und ein dynamischer Cache ohne Seeding für die anderen Ebenen). Angrenzende Features werden bis zur Zoomstufe 9 zusammengefasst:
id: vineyards-tiles
providerType: TILE
providerSubType: FEATURES
caches:
- type: IMMUTABLE
storage: MBTILES
levels:
WebMercatorQuad:
min: 5
max: 12
- type: DYNAMIC
storage: MBTILES
seeded: false
levels:
WebMercatorQuad:
min: 13
max: 18
tilesets:
vineyards:
id: vineyards
levels:
WebMercatorQuad:
min: 5
max: 18
transformations:
WebMercatorQuad:
- min: 5
max: 7
merge: true
groupBy:
- region
- min: 8
max: 8
merge: true
groupBy:
- region
- subregion
- min: 9
max: 9
merge: true
groupBy:
- region
- subregion
- cluster
Seeding-Beispiel (kein Seeding beim Start, Neuaufbau des Cache zu jeder Stunde) im Features-Tile-Provider:
providerType: TILE
providerSubType: FEATURES
seeding:
runOnStartup: false
runPeriodic: '0 * * * *'
purge: true
Beispiel für die Verwendung von mehreren Threads für das Seeding:
providerType: TILE
providerSubType: FEATURES
seeding:
maxThreads: 4
Hierfür müssen in der globalen Konfiguration (cfg.yml
) mindestens 4 Threads für Hintergrundprozesse konfiguriert sein, zum Beispiel:
backgroundTasks:
maxThreads: 4
Durch diese Setzungen werden mehrere Hintergrundprozesse überhaupt erst ermöglicht. Selbst ohne Änderungen an den Seeding-Optionen würde dies also die parallele Ausführung des Seeding für 4 APIs ermöglichen.
Wenn maxThreads
in den Seeding-Optionen größer als 1 ist, bedeutet das, dass das Seeding in n Teile geteilt wird, wobei n die Anzahl der verfügbaren Threads ist, wenn das Seeding beginnt, begrenzt durch seeding.maxThreads
.
Wenn man also zum Beispiel seedingOptions.maxThreads
mit der angegebenen cfg.yml
auf 2 setzt, wird das Seeding in 2 Teile aufgeteilt, wenn mindestens 2 der 4 Threads verfügbar sind. Wenn 3 Threads von anderen Diensten benutzt werden, wird es nicht aufgeteilt. Und wenn alle 4 Threads belegt sind, wird gewartet, bis mindestens 1 Thread frei wird.
Beispielkonfiguration (from the API Earth at Night):
- buildingBlock: TILES
enabled: true
tileProvider:
type: MBTILES
filename: dnb_land_ocean_ice.2012.54000x27000_geo.mbtiles
Beispielkonfiguration für die API Earth at Night,
die einen MBTiles-Tile-Provider hat.
In der API muss der TILES-Baustein aktiviert werden und das Tileset im Provider referenziert
werden:
- buildingBlock: TILES
enabled: true
tileProviderTileset: earthatnight
Der Tile-Provider definiert ein einziges Tileset und referenziert die MBTiles-Datei:
id: earthatnight-tiles
providerType: TILE
providerSubType: MBTILES
tilesets:
earthatnight:
id: earthatnight
source: earthatnight/dnb_land_ocean_ice.2012.54000x27000_geo.mbtiles
Der Tile-Provider definiert zwei Raster-Tilesets (Style: "default", Tile-Matrix-Sets: "WebMercatorQuad" und "AdV_25832"):
id: vineyards-tiles
providerType: TILE
providerSubType: FEATURES
seeding:
runOnStartup: true
maxThreads: 8
caches:
- type: IMMUTABLE
storage: PER_JOB
levels:
WebMercatorQuad:
min: 5
max: 16
AdV_25832:
min: 0
max: 11
rasterTilesets:
vineyards:
styles:
- vineyards/default.json
tilesets:
vineyards:
id: vineyards
center:
lon: 7.35
lat: 49.8
levels:
WebMercatorQuad:
min: 5
max: 16
default: 8
AdV_25832:
min: 0
max: 11
default: 3
transformations:
WebMercatorQuad:
- min: 5
max: 7
merge: true
groupBy:
- region
- min: 8
max: 8
merge: true
groupBy:
- region
- subregion
- min: 9
max: 9
merge: true
groupBy:
- region
- subregion
- cluster
AdV_25832:
- min: 0
max: 2
merge: true
groupBy:
- region
- min: 3
max: 3
merge: true
groupBy:
- region
- subregion
- min: 4
max: 4
merge: true
groupBy:
- region
- subregion
- cluster