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.

Searching catalogs

Both dialogs can search catalogs instead of taking a URL:

  • NextGIS QMS and the OSM Editor Layer Index (basemaps): the two big registries of tile and WMS services, filtered to the current view, with licence and attribution carried over into Source Info.

  • STAC search (beta, enable it in Settings → Beta): pick a catalog — OpenAerialMap, Earth Search, eoAPI, NASA VEDA, swisstopo, LINZ, Maxar and Vantor open-data events, Planet disaster releases, PGC polar DEMs, OpenTopography, a federated collection search, or any STAC API / static catalog.json URL — a date range and the current view, then add any Cloud Optimized GeoTIFF from the results as a terrain or basemap source. Assets whose projection extension says they are not Web Mercator are pinned to titiler automatically. Each catalog links to stac-map and STAC Browser for a fuller look.

    The STAC catalog list: custom URL, mixed, imagery, elevation and registries

    Vantor open-data results over the 2026 Nepal flooding, each scene addable as a basemap or overlay

Where a source has data is what Coverage Overlays show, on the map, before you load it.

Derived terrain: the difference of two sources

Add Terrain → Difference of two sources makes a terrain source out of two others, subtracted tile by tile: a normalised surface model (DSM − DTM, the height of what stands on the ground) or the change between two surveys. It has its own page, nDSM and Comparison, including the caveats on vertical datums and coarse references.

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