GET /v1/tilesets — 3D-Tiles per Bbox
Liefert alle 3D-Tiles-1.1-Tilesets, deren Bounding-Volume die angegebene WGS84-Bbox schneidet. Ein Tileset = ein Bundesland-Snapshot. Die zurückgelieferte tileset_url ist direkt für Cesium3DTileset.fromUrl(...) verwendbar — kein weiterer API-Roundtrip nötig.
Wann verwenden
- Beim Initialisieren eines 3D-Viewers: welche Tilesets musst du laden?
- Beim Wechsel der Karten-Region: nachladen, wenn neue BL ins Sichtfeld wandern.
- Discovery-Endpoint für Cross-BL-Apps (mehrere Tilesets gleichzeitig laden).
Examples
curl
curl -s 'https://api.lodapi.de/v1/tilesets?bbox=8.5,50.0,8.8,50.2' | jq '.tilesets[] | {bl: .bundesland_code, url: .tileset_url, count: .building_count}'
Cesium (TypeScript)
const r = await fetch("https://api.lodapi.de/v1/tilesets?bbox=8.5,50.0,8.8,50.2");
const { tilesets } = await r.json();
for (const t of tilesets) {
const ts = await Cesium.Cesium3DTileset.fromUrl(t.tileset_url);
viewer.scene.primitives.add(ts);
}
MapLibre + Deck.gl (TypeScript)
import { Tiles3DLayer } from "@deck.gl/geo-layers";
const r = await fetch("https://api.lodapi.de/v1/tilesets?bbox=...");
const { tilesets } = await r.json();
const layers = tilesets.map(t => new Tiles3DLayer({ id: t.tileset_id, data: t.tileset_url }));
Parameters
| Parameter | In | Type | Required | Beschreibung |
|---|---|---|---|---|
bbox | query | string | yes | WGS84 minLon,minLat,maxLon,maxLat (Komma-separiert) |
Response
200 OK · application/json — Schema in openapi.json (#/components/schemas/TilesetListResponse).
{
"tilesets": [
{
"tileset_id": "f4b...",
"region_code": "he",
"bundesland_code": "he",
"snapshot_date": "2026-04-15",
"s3_key": "s3://lodapi-tiles/he/2026-04-15/tileset.json",
"tileset_url": "https://tiles.lodapi.de/he/2026-04-15/tileset.json",
"tile_count": 21785,
"total_bytes": 731000000,
"building_count": 4934236,
"generated_at": "2026-05-13T17:42:00Z",
"bounding_volume": { "type": "Polygon", "coordinates": [...] }
}
],
"count": 1,
"bbox": [8.5, 50.0, 8.8, 50.2],
"lodapi": { "attribution": [{ "source": "HLBG", "license": "DL-DE/Zero 2.0", ... }] }
}
Antwort-Header
| Header | Wert |
|---|---|
Cache-Control | public, max-age=300 |
Attribution
lodapi.attribution[] enthält einen Eintrag pro zurückgegebenes BL. Frontends müssen den source-String anzeigen, wenn license != DL-DE/Zero 2.0. Siehe Attribution-Guide.
Stolperdrähte
bounding_volumeist GeoJSON-Polygon (kein 3D-Tiles-Bounding-Volume-Format). Nützlich für Map-Vorschauen, nicht für 3D-Frustum-Culling.- Mehrere Tilesets pro BL: möglich bei Mehrsnapshot-Coverage. Aktuell liefert die API nur den jüngsten Snapshot pro BL.
- bbox-Schneiden vs. -Enthalten: ST_Intersects, nicht ST_Contains. Ein Tileset, das die bbox nur am Rand kratzt, ist enthalten.
Verwandte Endpoints
GET /v1/tilesets/{tileset_id}— Detail per ID.GET /v1/tilesets/{tileset_id}/tileset.json— direkt zum tileset.json.GET /v1/buildings— föderierte Feature-Query als Alternative.