GET /v1/osm-cover/datasets

3D-Tiles-OSM-Cover-Tilesets (thematisch geclustert, b3dm + Draco)

beta seit v0.1.0 osm-cover auth: none
Als Markdown anzeigen → Im Swagger-UI öffnen → operationId: list_osm_cover_datasets

GET /v1/osm-cover/datasets — OSM-Cover-Tilesets

Discovery-Endpoint für die OSM-Bodenbedeckung als 3D-Tiles (ADR-0017): OSM-Flächen (Wiese, Wasser, Wald, Straßen, Schienen …) auf das DGM1-Gelände drapiert und als b3dm + Draco-Compressed glTF gerendert. Konsumiert direkt von Cesium, three.js (3d-tiles-renderer), Blender (3D-Tiles-Addon).

Pro BL der jüngste Snapshot. Der entscheidende Unterschied zu /v1/terrain-mesh/datasets: jedes BL liefert mehrere thematische Cluster-Tilesets statt genau einem. Die Themes (surface, transport, canopy, bei Küsten-BL zusätzlich sea) sind eigene Tilesets, die der Client als parallele Layer lädt — unabhängig rebuild- und cutover-bar.

Die Tilesets selbst werden statisch von Caddy unter tiles.lodapi.de/osm-cover/<bl>/<snapshot>/<theme>/tileset.json ausgeliefert (Reverse-Proxy auf Hetzner-Storage-Box).

Status: beta. Cover-Geometrie ist Buffer-basiert (Straßen), Veredelung via osm2streets ist Phase 2. Lizenz: ODbL (Share-Alike) — siehe Attribution.

Wann verwenden

Examples

curl

curl -s https://api.lodapi.de/v1/osm-cover/datasets \
  | jq '.datasets[] | {bl: .bundesland_code, themes: [.themes[] | {name, tiles: .tile_count, url: .tileset_url}]}'

Three.js — alle Themes als parallele Tilesets

import { TilesRenderer } from "3d-tiles-renderer";

const r = await fetch("https://api.lodapi.de/v1/osm-cover/datasets");
const { datasets } = await r.json();
const be = datasets.find(d => d.bundesland_code === "be");
for (const theme of be.themes) {
  const tiles = new TilesRenderer(theme.tileset_url);
  tiles.setCamera(camera);
  tiles.setResolutionFromRenderer(camera, renderer);
  scene.add(tiles.group);
}

Cesium — Themes einzeln zuschaltbar

const r = await fetch("https://api.lodapi.de/v1/osm-cover/datasets");
const { datasets } = await r.json();
const be = datasets.find(d => d.bundesland_code === "be");
const canopy = be.themes.find(t => t.name === "canopy");
const ts = await Cesium.Cesium3DTileset.fromUrl(canopy.tileset_url);
viewer.scene.primitives.add(ts);   // Baum-Layer separat ein-/ausblendbar

Parameters

Keine.

Response

200 OK · application/json — Schema #/components/schemas/OsmCoverDatasetListResponse.

{
  "datasets": [
    {
      "bundesland_code": "be",
      "snapshot_date": "2026-06-15",
      "themes": [
        {
          "name": "surface",
          "tileset_url": "https://tiles.lodapi.de/osm-cover/be/2026-06-15/surface/tileset.json",
          "tile_count": 1234
        },
        {
          "name": "transport",
          "tileset_url": "https://tiles.lodapi.de/osm-cover/be/2026-06-15/transport/tileset.json",
          "tile_count": 567
        },
        {
          "name": "canopy",
          "tileset_url": "https://tiles.lodapi.de/osm-cover/be/2026-06-15/canopy/tileset.json",
          "tile_count": 89
        }
      ],
      "bbox": [13.0883, 52.3382, 13.7612, 52.6755],
      "license": "odbl-1.0",
      "attribution": "© OpenStreetMap-Mitwirkende (ODbL)",
      "built_at": "2026-06-15T22:14:00Z"
    }
  ]
}

Antwort-Header

HeaderWert
Cache-Controlpublic, max-age=300

Themes

ThemeInhalt
surfaceFlächen-Bodenbedeckung (Grün, Wasser, Urban, Plätze, Parken, Sport, Friedhof, Hecke)
transportStraßen, Wege, Schienen (Buffer-Geometrie)
canopyBaumkronen-Mesh (aus DLR-Höhenraster)
seaTopf-Meer (flach Z=0) — nur Küsten-BL

Die themes-Liste ist variabel lang: Binnenland-BL liefern 3 Themes (ohne sea), Küsten-BL 4.

Stolperdrähte

Verwandte Endpoints

Verwandt

Bereit?

Hol dir deinen API-Key.

1.000 Calls und 1 GB Tile-Daten kostenlos pro Monat — ohne Kreditkarte, ohne Ablaufdatum.