Skip to main content

Terrain API

These routes generate, serve, merge, and remove terrain outputs for MapLibre, Cesium, and related viewers.

Tileset Lifecycle

MethodPathPurpose
GET/terrainlist terrain tilesets
POST/terrain/{dataset_id}/generategenerate Terrain RGB tiles from a raster
DELETE/terrain/{dataset_id}delete tiles and manifest entry for a dataset
POST/terrain/mergemerge multiple datasets into a terrain product

Tile Serving

MethodPathPurpose
GET/terrain/{dataset_id}/tilejson.jsonTileJSON metadata for viewer integration
GET/terrain/{dataset_id}/tiles/{z}/{x}/{y}.pngserve unpacked XYZ terrain tiles
GET/terrain/{dataset_id}/mbtiles/{z}/{x}/{y}.pngserve tiles directly from MBTiles storage
POST/terrain/{dataset_id}/unpack-mbtilesconvert MBTiles backend into unpacked XYZ directory layout

Mago Terrain Helpers

MethodPathPurpose
GET/terrain/magoinspect generated mago terrain assets
POST/terrain/magorun mago terrain generation
POST/terrain/mago/deleteremove generated mago terrain assets
POST/jobs/mago-terrainqueue mago terrain generation in Celery

Notes

  • Viewer-side integration normally starts from TileJSON and then pulls tile URLs from the returned template.
  • Merge workflows can be synchronous in some endpoints and asynchronous in the jobs family depending on payload size and operational preference.
  • Terrain generation is one of the heavier write paths in the stack, so it is a good candidate for Celery offloading during large campaigns.