Terrain Viewer
Features

Export & Share

Snapshots, DEM GeoTIFF and contour exports, historical batch export, and social sharing

Everything here lives in the sidebar's Download and Snapshot section. In historical mode (no terrain source, no contour layer) the section shrinks to just Snapshot / Copy / Share plus the historical batch export — the GeoTIFF export only makes sense with a terrain source loaded.

Snapshot & Copy

  • Snapshot — saves the map area to disk as a JPEG, exactly as laid out on screen: a single view, or every view of a side-by-side, grid or overlay comparison (wipe position, blend mode and opacity included), with the date pills, scale bar and attribution, but never the side panel or the map's buttons (search, zoom, compass, geolocate). The strips hidden under the open side panel and the historical timeline are cropped off so the subject stays centred; open the Export settings fold under the export buttons and tick Include the timeline in snapshots to keep the timeline in the picture instead — it applies to Copy and Share too. In 2D view mode, a matching .jgw world file is saved alongside it (and the filename is tagged -epsg4326), so the image drops into GIS software already georeferenced — for a single view or an overlay comparison only, since a side-by-side or grid image holds several extents. 3D and globe views get the plain image only — a perspective render has no single affine georeferencing.
  • Copy — the same capture, copied straight to the clipboard for pasting into chats, slides, or issues.

DEM GeoTIFF export

GeoTIFF exports the current viewport's elevation data as a single-band 32-bit-float GeoTIFF (WGS 84) — real elevations in meters, not the RGB-packed tiles the renderer consumes. Two export engines, chosen by the DTM Export without Titiler toggle in Streaming & Storage Settings:

  • Client-side (toggle on) — the browser range-reads and mosaics the source's tiles/COG directly, bypassing Titiler's server-side size cap. Supports COG, Terrain-RGB, and Terrarium sources — including a local COG file no server could reach. Shows a live progress bar, and a Cancel affordance appears (hover the exporting button) once an export has run long enough to be worth cancelling.
  • Titiler (toggle off) — the source's tile URL is wrapped in a GDAL WMS descriptor and handed to the Titiler endpoint's /cog/bbox route, which mosaics it server-side; the app then decodes the RGB packing back into real elevations before saving.

The Max Download Resolution (px) field, in the Export settings fold below the buttons, caps the output width/height for both paths. If the source's tile pyramid runs out of zoom over the selected area, the export still saves — at the best resolution available — with a warning explaining the shortfall.

Visible layers export

The arrow beside GeoTIFF opens a menu: Elevation (DEM) GeoTIFF, the same as the button, and Visible layers…. The second opens a tree with two branches, Visible and Not visible, one file per line. A branch's or group's checkbox ticks or unticks everything under it, and the chevrons fold. Everything visible starts ticked; the Not visible branch starts unticked and folded.

GroupWhat it holdsFile
SnapshotEvery visible layer, as seen; above both branchesRGBA
ElevationThe DEMfloat32 GeoTIFF
Raster BasemapThe basemap imagery, from its own tiles, listed even when hiddenRGBA
Hillshade and HypsoThe terrain's own rendersRGBA
VectorContour lines, mound candidatesGeoJSON
Terrain Analysis, Relief VisualizationEach mode's raw values: slope, aspect and orientation in degrees, LRM, TPI and TRI in metres, sky-view factor in percentfloat32 GeoTIFF, NaN = nodata
Lighting EffectsMatcap, Phong, hard shadows, from their own tilesRGBA
Rendered layersThe modes as coloured on screen, basemap overlaysRGBA

Every raster is in Web Mercator (EPSG:3857), the grid of the tiles and of the map itself, so the exports line up with each other and with the snapshot without resampling. A colour-mapped mode is written next to its raw values as …_colormapped_<date>.tif.

Under Not visible, the modes that are switched off can be exported too, even when their whole section is off: their tiles are computed for the export. Hidden rendered layers are shown for the moment of their capture.

Resolution. Screen, labelled with the canvas size in pixels, exports exactly that many pixels at the zoom the map is drawing, so every tile is already cached and the whole export takes seconds. Custom size takes a longest edge, up to 16 384 px, and shows the other edge from the view's shape; tiles are fetched at the zoom that meets it. Either way the DEM and the values come out on a regular EPSG:3857 grid covering exactly the view. The same choice drives the main GeoTIFF button. The snapshot and rendered layers are always the screen's own pixels.

Under the resolution, one line says what the batch will read: the terrain tiles at the source's own tile size, or a region read for WMS, VRT and difference sources (a few requests for the whole area), then how many tiles each mode computes from them, cached after the first.

Lighting Effects (Matcap, Phong, hard shadows) export from their own tiles as RGBA on the same EPSG:3857 grid, at the export size and in any view, including while the live renderer draws them on screen. They use the light direction as set; the live renderer's "light follows the camera" option does not apply.

Values as. Raw values is the float32 GeoTIFF. Coloured runs the values through the mode's own colour ramp, with the bounds, symmetric and inverted settings you set, into an RGBA image on the same grid. Both writes the two. Curvature and shape index are stored ×1000 in their tiles for precision; the export divides that back out.

Images as. RGBA outputs, the snapshot, rendered layers and coloured values, can be a GeoTIFF, or a PNG or JPEG with a world file (.pgw/.jgw), a .prj, and a .aux.xml from which GDAL and QGIS read the CRS. JPEG has no transparency, so nodata becomes white. Raw values and the DEM are always float32 GeoTIFF.

When the view is tilted, rotated or on the globe, a banner recommends 2D, north up, with a button that switches to it.

Rendered layers are the canvas, so they need a flat, north-up map: in the globe or the tilted 3D view, or with the map rotated, they are greyed out with the reason. Each is drawn on its own for a moment while it is captured, then every layer comes back.

The contour lines are the ones currently rendered in the viewport, with segments cut apart by tile boundaries stitched back into continuous lines. Mound candidates can also be exported from their own section.

Export Multi (Historical)

Export Historical GeoTiffs opens a batch-export dialog: one RGB GeoTIFF per export target × historical source × capture date in a picked range, each cropped to its target's own extent, bundled into a single .zip.

  • Export target — either the current viewport (one extent, nothing needs drawing) or Per-Feature: one target per drawn feature, optionally filtered to a single Drawing layer. Per-feature targets get configurable padding — meters around points, percent around lines/polygons.
  • Sources — ESRI Wayback, NASA HLS (Harmonized Landsat Sentinel-2), Google Earth Historical, EOX Sentinel-2 Cloudless, Bing, and Planet Monthly (only listed once a Planet API key is set). Each contributes its real capture dates at the target's location within the chosen date range; Bing has no date archive, so it contributes exactly one current capture regardless of range. Targets/sources with no capture in range are reported as skipped, not failed.
  • Target resolution sets the pixel size per exported extent (the source's own pyramid may cap it lower).
  • Include gdal_translate script — adds one .bat per target with a gdal_translate command per capture, so the same extents can be re-fetched outside the browser at full native resolution. Google Earth Historical has no public tile URL (the app resolves it internally), so its entries are REM-commented rather than included.

Share

Share opens a modal that shares the current page URL — since every viz mode, source, and camera setting lives in the URL, the link alone reproduces your exact view. A preset blurb introducing the app is prepended as the post text. Platform tiles open each network's composer: X/Twitter, Bluesky, Mastodon (via a share page that lets you pick your instance), LinkedIn, Threads, Reddit. Clicking a tile also captures a screenshot and copies it to your clipboard automatically, so you can paste it (Ctrl+V / ⌘V) into the composer before publishing. Below the grid:

  • Native Share (shown when the browser supports the Web Share API) — hands the URL, text, and the screenshot as an attached PNG to the OS share sheet, for apps like WhatsApp or Slack.
  • Copy screenshot to clipboard and Copy URL to clipboard — the same two pieces, for doing it manually.

Related: the Open In launcher hands the current viewport off to other web viewers (River-REM, ESRI Wayback, Google Earth, …) instead of exporting anything.

On this page