GET /v1/terrain/datasets — Terrain-Coverage-Discovery
Liefert eine Zeile pro Bundesland mit dem jüngsten DGM1-Snapshot. Pendant zu /v1/ für LoD2 — beantworte „welche BL sind live”, bevor du Punkt- oder Linienabfragen issuest.
Examples
curl
curl -s https://api.lodapi.de/v1/terrain/datasets | jq '.datasets[] | {bl: .bl, snap: .snapshot, count: .tile_count, lic: .license}'
Python — Coverage-Check
# pip install lodapi
from lodapi import Client
with Client() as c:
covered = {d.bl for d in c.terrain.datasets().datasets}
print(f"Terrain live in: {sorted(covered)}")
Parameters
Keine.
Response
200 OK · application/ — Schema #/.
{
"datasets": [
{
"bl": "be",
"license": "dl-de-zero-2.0",
"snapshot": "2025-12-18",
"format": "GeoTIFF (COG)",
"source": "convert+storage-box",
"tile_count": 297,
"crs": "EPSG:25833",
"vertical_datum": "DHHN2016",
"attribution": "© SenStadt Berlin (DL-DE/Zero 2.0)",
"coverage_pct": null
}
],
"count": 5
}
Antwort-Header
| Header | Wert |
|---|---|
Cache-Control | public, max-age=300 |
Stolperdrähte
coverage_pctist immer null in Phase-2a — wir liefern ein ehrliches null statt ausgedachte 100.0. Phase-3 (ADR-0009) wirdcoverage_polygonfür jedes Dataset berechnen.sourceunterscheidet zwischenconvert+storage-box(Lodapi-Konvertierung auf Hetzner-Storage-Box),r2-mirror(Mirror auf Cloudflare R2),pass-through(live gegen Behörden-Server).- CRS pro BL: westliche BL EPSG:25832 (UTM32N), östliche BL EPSG:25833 (UTM33N).
/v1/macht die Transformation automatisch.terrain/ elevation
Verwandte Endpoints
GET /— Punktabfrage.v1/ terrain/ elevation GET /— Linienprofil.v1/ terrain/ profile GET /— 3D-Tiles-Mesh-Tilesets (Phase-2-Mesh).v1/ terrain-mesh/ datasets