Terrain Service
This service delivers multi-resolution 3D terrain data as quantized mesh tiles, fully compliant with the Cesium Quantized Mesh 1.0 specification. Tiles are organized and served following the Tile Map Service (TMS) specification using a global-geodetic profile (latitude/longitude coordinates),
https://3d.geo.admin.ch/ch.swisstopo.terrain.3d/<Version>/<Time>/<Zoom>/<X>/<Y>.terrain
Use the following parameters to define your request:
Parameter | Example | Description |
---|---|---|
ServerName | 3d.geo.admin.ch | |
Version | v1 | v1 means terrain tiles generated with cesium tiles |
Time | 20250101 | Date of tile generation in ISO-8601 (YYYYMMDD). |
Zoom | 12 | Zoom level |
X | 4309 | The longitude index |
Y | 3111 | The latitude index |
An example of a terrain tile request:
curl -o demo.terrain https://3d.geo.admin.ch/ch.swisstopo.terrain.3d/v1/20250101/11/2130/1550.terrain?v=1.43646.0
Metadata
The layer.json
file provides metadata that describes the availability and structure of the terrain tiles at a given timestamp.
https://3d.geo.admin.ch/ch.swisstopo.terrain.3d/v1/<Time>/layer.json
If you always want the most rectent terrain tiles, you can leave /<Time>
away in the path towards layer.json
.
Parameter | Example | Description |
---|---|---|
Time (optional) | Date of tile generation in ISO-8601 (YYYYMMDD). If no date is provided, it returns the metadata for the most recent terrain tiles. |
Example of a metadata request for the date 20250101
:
curl --compressed https://3d.geo.admin.ch/ch.swisstopo.terrain.3d/v1/20250101/layer.json
{
"attribution": "Put something there",
"available": [...],
"bounds": [-180, -90, 180, 90],
"description": "Nice terrains",
"format": "quantized-mesh-1.0",
"minzoom": 0,
"projection": "EPSG:4326",
"scheme": "tms",
"tilejson": "2.1.0",
"tiles": ["{z}/{x}/{y}.terrain?v={version}"],
"version": "3924.0.0"
}
Example: Cesium
An example of a Cesium application using terrain tiles, 3D buildings and a WMTS layer.