Terrain Viewer
Features

Bring Your Own Data (BYOD)

Adding your own terrain/basemap sources, including local files

Add your own terrain or basemap source from the "Add New Terrain Dataset" dialog (Sources → Terrain/Basemap). Supported shapes:

The Add New Terrain Dataset dialog, with the full built-in terrain source list behind it

Add New Terrain Dataset dialog, with the Sample datasets already loaded behind it — Hillshade (Aspect Multidir Colors), wide Western Europe view

  • XYZ Terrarium or Terrain-RGB tiles (a raw tile URL template) — the same encoding used by Mapterhorn, Mapbox, MapTiler, and AWS Terrain Tiles, this app's built-in terrain sources
  • COG (Cloud-Optimized GeoTIFF), via Titiler or read directly in-browser via @geomatico/maplibre-cog-protocol. On the geomatico path (the default — see Streaming & Storage Settings), a DSM/DEM GeoTIFF must be both a genuine COG — internally tiled and pyramided with overviews — and in Web Mercator (EPSG:3857); anything else, route it through Titiler (which reprojects server-side) or fix it up first: gdalwarp -t_srs EPSG:3857 -of COG src.tif out.tif.

A heavily-loaded Terrain source list — several custom BYOD sources (national LiDAR DSMs, a Copernicus GLO-30 export) alongside the built-in defaults — comparing two of them side by side is exactly what Split Modes covers.

Shareable via URL: a link whose sourceA/sourceB/basemapSource… params reference a sample-library id (e.g. ?sourceB=custom-ign-lidarhd-dtm-wms-raw) auto-adds that source to the recipient's BYOD list on load, and ?addSources=id1,id2 prepopulates several samples at once without selecting any of them — handy for handing a colleague both the IGN DSM and DTM ready to toggle between.

Local (offline) COG terrain sources

Two ways to use a COG that lives on your own disk, without uploading it anywhere:

Local COG file (built into the app)

Pick a .tif/.tiff with the Local COG file (this browser only) type — the app streams it straight off disk via a blob: URL through the same cog:// reader used for remote COGs.

  • Never uploaded. Not persisted by default — after a reload, re-select the same file to resume — unless you enable Settings → Browser Local Storage Persistence → Local COG Files, which copies picked files into the browser's private storage (OPFS) so they survive reloads; that panel also shows per-category storage usage against the site's quota, with a Clear button to free it. Local COGs can also travel inside a Project export (Settings → Project) as part of its .zip bundle.
  • Works for the primary terrain source and its derivative visualizations, the Elevation Picker, and client-side GeoTIFF export. Contour Lines still needs Titiler (it can't reach a local file).
  • Must be a genuinely tiled COG (e.g. gdal_translate -of COG src.tif out_cog.tif), not a plain strip-organized GeoTIFF — an untiled file forces large repeated decodes and can crash the tab.
  • Must already be in Web Mercator (EPSG:3857) — reproject first with gdalwarp -t_srs EPSG:3857 -of COG src.tif out_3857.tif if it isn't, or use the remote COG type in Titiler mode instead (which reprojects server-side).

Localhost static file server

Serve the directory containing your COG with any Range-request-capable static server:

npx serve --cors -p 8080 .

Then add it as a normal COG source with URL http://localhost:8080/your-file.tif. http://localhost is exempt from mixed-content blocking, so this HTTPS app can fetch it directly. Unlike the built-in local-file picker, this survives reloads and works in any browser.

Non-geo relief visualization

For non-georeferenced data (e.g. frescoes, artifact scans), see Frescoes & Artifact Scans for the workflow (including a real built-in sample), or the Non-Geo Relief Visualization guide directly for the COG parameters needed to avoid artifacts.

On this page