Features
Bei diesem Tile-Provider werden die Kacheln im Format Mapbox Vector Tiles aus einem Feature Provider abgeleitet. Zusätzlich können Raster-Kacheln im PNG-Format aus den Vektor-Kacheln mit xtratiler abgeleitet werden.
Konfiguration
Name | Default | Beschreibung | Typ | Seit |
---|---|---|---|---|
id | Eindeutiger Identifikator des Entities, muss dem Dateinamen entsprechen. Erlaubt sind Buchstaben (A-Z, a-z), Ziffern (0-9), der Unterstrich ("_") und der Bindestrich ("-"). | string | v2.0 | |
enabled | true | Option um die Entity zu deaktivieren, was bedeutet, dass sie für andere Entities nicht verfügbar ist und Hintergrundprozesse nicht laufen. | boolean | v2.0 |
providerType | Immer TILE . | string | v2.0 | |
providerSubType | Immer FEATURES . | string | v2.0 | |
auto | false | Steuert ob fehlende Definitionen beim Start automatisch aus der Datenquelle bestimmt werden sollen (Auto-Modus). | boolean | v2.0 |
tilesetDefaults | Defaults für alle tilesets , siehe Tileset Defaults. | object | v3.4 | |
tilesets | {} | Definition von Tilesets, see Tileset. | object | v3.4 |
rasterTilesets | {} | Definition von Raster-Tilesets, see Raster-Tileset. | object | v4.1 |
caches | [] | Liste von Cache-Definitionen, siehe Cache. | array | v3.4 |
seeding | {} | Steuert wie und wann Kacheln vorberechnet werden, siehe Seeding. | object | v3.4 |
Tileset Defaults
Defaults die für jedes Tileset angewendet werden.
Name | Default | Beschreibung | Typ | Seit |
---|---|---|---|---|
center | { lon: 0.0, lat: 0.0 } | Legt Länge und Breite fest, auf die standardmäßig eine Karte mit den Kacheln zentriert werden sollte. | object | v3.4 |
featureLimit | 100000 | Steuert die maximale Anzahl der Features, die pro Query für eine Kachel berücksichtigt werden. | number | v3.4 |
minimumSizeInPixel | 0.5 | Objekte mit Liniengeometrien, die kürzer als der Wert sind, werden nicht in die Kachel aufgenommen. Objekte mit Flächengeometrien, die kleiner als das Quadrat des Werts sind, werden nicht in die Kachel aufgenommen. Der Wert 0.5 entspricht einem halben "Pixel" im Kachelkoordinatensystem. | number | v3.4 |
ignoreInvalidGeometries | false | Steuert, ob Objekte mit ungültigen Objektgeometrien ignoriert werden. Bevor Objekte ignoriert werden, wird zuerst versucht, die Geometrie in eine gültige Geometrie zu transformieren. Nur wenn dies nicht gelingt, wird die Geometrie ignoriert. Die Topologie von Geometrien können entweder schon im Provider ungültig sein oder die Geometrie kann in seltenen Fällen als Folge der Quantisierung der Koordinaten zu Integern für die Speicherung in der Kachel ungültig werden. | boolean | v3.4 |
sparse | false | Die dem Tileset zugrundeliegende Objektart ist wahrscheinlich spärlich belegt. Eine beträchtliche Anzahl von Kacheln könnte keine Features beinhalten. | boolean | v4.2 |
transformations | {} | Über Transformationen können die selektierten Features in Abhängigkeit der Zoomstufe nachbearbeitet werden. Unterstützt wird eine Reduzierung der Attribute ( properties ), das geometrische Verschmelzen von Features, die sich geometrisch schneiden (merge ), ggf. eingeschränkt auf Features mit bestimmten identischen Attributen (groupBy ). Siehe das Beispiel unten. Beim Verschmelzen werden alle Attribute in das neue Objekt übernommen, die in den verschmolzenen Features identisch sind. | object | v3.4 |
featureProvider | null | Die Id des Feature-Providers. Standardmäßig wird die Tile-Provider-Id ohne -tiles verwendet. | string | v3.4 |
levels | { "WebMercatorQuad" : { "min": 0, "max": 23 } } | Steuert die Zoomstufen, die für jedes aktive Kachelschema verfügbar sind sowie welche Zoomstufe als Default verwendet werden soll. | object | v3.4 |
Tileset
Alle Optionen aus Tileset Defaults sind ebenfalls verfügbar und können hier überschrieben werden.
Name | Default | Beschreibung | Typ | Seit |
---|---|---|---|---|
id | Die Tileset-Id. | string | v3.4 | |
featureType | null | Der Name des Feature-Types. Standardmäßig wird die Tileset-Id verwendet. | string | v3.4 |
combine | [] | Anstatt aus einem featureType generiert zu werden, kann ein Tileset auch aus mehreren anderen Tilesets kombiniert werden. Der Wert ist eine Liste von Tileset-Ids oder eine Liste mit einem einzelnen Eintrag * um alle anderen Tilesets zu kombinieren. | array | v3.4 |
filters | {} | Über Filter kann gesteuert werden, welche Features auf welchen Zoomstufen selektiert werden sollen. Dazu dient ein CQL-Filterausdruck, der in filter angegeben wird. Siehe das Beispiel unten. | object | v3.4 |
Raster-Tileset
Um Raster-Kacheln zu generieren, wird xtratiler benötigt. Raster-Kacheln können nicht auf Anfrage generiert werden, daher ist ein seeded
Cache erforderlich. Aktuell werden nur DYNAMIC
-Caches unterstützt.
Name | Default | Beschreibung | Typ | Seit |
---|---|---|---|---|
styles | [] | Liste der MapLibre-Styles für die Raster-Kacheln generiert werden sollen. Die Einträge sind relative Pfade zu Values vom Typ maplibre-styles im Store. | array | v4.1 |
Cache
Es gibt zwei verschiedene Cache-Typen:
IMMUTABLE
Ein unveränderbarer Cache kann nur durch Seeding erzeugt werden. Er wird erst verfügbar gemacht, wenn er vollständig ist. Wenn einige oder alle Kacheln neu berechnet werden sollen, wird auch die neue Version erst verfügbar gemacht, wenn sie vollstänidg ist. In der Zwischenzeit wird weiter die alte Version verwendet.
Daher ist ein unveränderbarer Cache immer konsistent und garantiert unterbrechungsfreien Betrieb, sobald das initiale Seeding abgeschlossen ist.DYNAMIC
Ein dynamischer Cache kann durch Seeding berechnet werden, aber er speichert auch passende Kacheln, die von Konsumenten angefragt werden. Kacheln werden verfügbar gemacht, sobald sie berechnet sind. Wenn einige oder alle Kacheln neu berechnet werden sollen, werden sie zunächst gelöscht.
Daher kann ein dynamischer Cache inkonsistent sein und kann während des (Re-)Seedings Client-Fehler auslösen.
Im allgemeinen wird die Verwendung von unveränderbaren Caches empfohlen. Für höhere Zoom-Level kann ein komplementärer nicht-geseedeter dynamischer Cache Sinn machen, um die Seeding-Zeit zu reduzieren.
Es gibt zwei verschiedene Storage-Typen:
PLAIN
Jede Kachel wird in einer einzelnen Datei gespeichert. Das wird für Remote-Speicherung empfohlen (coming soon).MBTILES
Kacheln werden in einer MBTiles Datei pro Kachelschema gespeichert. Das wird für lokale Speicherung empfohlen.
Name | Default | Beschreibung | Typ | Seit |
---|---|---|---|---|
type | Entweder IMMUTABLE oder DYNAMIC . | string | v3.4 | |
storage | Entweder PLAIN oder MBTILES . | string | v3.4 | |
seeded | true | Soll dieser Cache beim Seeding berücksichtigt werden? | boolean | v3.4 |
levels | {} | Kachelschemas und Zoomstufen, die von diesem Cache gespeichert werden sollen. Gilt für alle Tilesets, die nicht in tilesetLevels angegeben werden. | object | v3.4 |
tilesetLevels | {} | Kachelschemas und Zoomstufen für einzelne Tilesets, die von diesem Cache gespeichert werden sollen. | object | v3.4 |
Seeding
Steuert wie und wann Caches berechnet werden.
Name | Default | Beschreibung | Typ | Seit |
---|---|---|---|---|
runOnStartup | true | Steuert, ob das Seeding beim Start einer API ausgeführt wird. | boolean | v2.0 |
runPeriodic | null | Ein Crontab-Pattern für die regelmäßige Ausführung des Seedings. Das Seeding wird stets nur einmal pro API zur gleichen Zeit ausgeführt, d.h. falls eine weitere Ausführung ansteht, während die vorherige noch läuft, wird diese übersprungen. | string | v2.0 |
purge | false | Steuert, ob der Cache vor dem Seeding bereinigt wird. | boolean | v2.0 |
maxThreads | 1 | Die maximale Anzahl an Threads, die für das Seeding verwendet werden darf. Die tatsächlich verwendete Zahl der Threads hängt davon ab, wie viele Threads für Hintergrundprozesse zur Verfügung stehen, wenn das Seeding startet. Wenn mehr als ein Thread erlaubt sein soll, ist zunächst zu prüfen, ob genügend Threads fürHintergrundprozesse konfiguriert sind. Es ist zu berücksichtigen, dass alle APIs um die vorhandenen Threads für Hintergrundprozesse konkurrieren. | number | v2.0 |
jobSize | M | Die maximale Anzahl an Tiles in einem Seeding-Job (S=256, M=1024, L=16384, XL=65536). Das Seeding wird in mehrere Jobs aufgeteilt, um die Arbeit auf Threads und Knoten zu verteilen. | string | v2.0 |
Beispiel
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
tilesetDefaults:
levels:
WebMercatorQuad:
min: 5
max: 18
tilesets:
__all__:
id: __all__
combine: ['*']
vineyards:
id: vineyards