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

The Download and Snapshot section — Snapshot, GeoTIFF (with the menu arrow for Visible layers…), Copy, Share and the historical batch export, over the Matterhorn in hillshade and hypsometric tint
- 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
.jgwworld 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/bboxroute, 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 Export layers dialog — one file per line, the Visible branch ticked, the Not visible branch folded; Export 4 writes the snapshot, the DEM, the hillshade and the hypso
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.
| Group | What it holds | File |
|---|---|---|
| Snapshot | Every visible layer, as seen; above both branches | RGBA |
| Elevation | The DEM | float32 GeoTIFF |
| Raster Basemap | The basemap imagery, from its own tiles, listed even when hidden | RGBA |
| Hillshade and Hypso | The terrain's own renders | RGBA |
| Vector | Contour lines, mound candidates | GeoJSON |
| Terrain Analysis, Relief Visualization | Each mode's raw values: slope, aspect and orientation in degrees, LRM, TPI and TRI in metres, sky-view factor in percent | float32 GeoTIFF, NaN = nodata |
| Lighting Effects | Matcap, Phong, hard shadows, from their own tiles | RGBA |
| Rendered layers | The modes as coloured on screen, basemap overlays | RGBA |
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 Multi (Historical) over Île de la Cité — 48 captures from ESRI Wayback and Google Earth in the date range, one GeoTIFF each
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.
- Resolution is one ground sample distance (m/px at the AOI's centre latitude) with the width and height it gives: edit any of the three and the other two follow the AOI's aspect (per feature, the largest feature's, so width and height are maxima). A warning marks outputs over 4096 px a side; the cap is 8192, where a file is scaled down.
- Tiles at this resolution asks each source for one tile at the AOI centre at the zoom the GSD needs, when the dialog opens, when the GSD or the sources change, and on Check. A source whose pyramid stops short answers with its best zoom ("Esri Wayback: no zoom 19 here, best zoom 18 (49 cm/px)"); the export then starts at that zoom and the manifest records both.
- Output CRS — EPSG:3857 (default), EPSG:4326, "UTM, zone of each AOI" (the viewport's zone, or each feature's own: Egypt, USA and Australia features in one export each land in their grid, and the manifest's
crslists the zones), the one fixed zone of the view centre ("UTM 41N (EPSG:32641)"), or any EPSG code (its definition from epsg.io). The pixels are not warped: they stay the Web Mercator mosaic, and the georeferencing is an affine fitted through the output's corners in the target CRS, written asModelTransformationwhen it has rotation or shear. The dialog measures the fit at the corners and the centre and notes the residual ("about 2.8 px off at the corners, fine for most uses"); past 20 px it is a warning, in the dialog and in the manifest. The residual is inmanifest.jsonwith the CRS and the geotransform of each file. In viewport mode the sizes, the zoom and the check follow the map as it moves. - Include gdal_translate script — adds one
.batper target with agdal_translatecommand 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.
The same Output CRS choice is in the Export settings fold (DEM GeoTIFF, snapshot world file) and in the Export layers dialog, with the same unwarped affine.
Share

The Share modal over the Alps — the link names the user's own overlay by URL so the recipient loads it too, while a local picture stays by id; platform tiles, copy buttons and the iframe embed below
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.
- Name my sources by URL — the box at the top. Your own terrain, basemap and overlay sources (added in the sidebar, with a remote URL) are written into the link by URL, type and name instead of the id that only exists in your browser, so the recipient's app registers and shows them without having them in its library. Library entries already resolve for everyone and are left alone; local files and entries that need more than a URL and a type stay by id, and the box says which. The switch is disabled when the link names none of your own sources. Catalog items put on a view (an ArcGIS Online service, a STAC scene, a Planet scene, a national archive's layer) go by URL too, with their extent, zoom range and draw slot in
sourceMeta; Allmaps maps, David Rumsey sheets and Map Warper maps stay by id, which every copy of the app rebuilds on its own. A Planet tile URL travels with a{planetKey}placeholder: the recipient's own key fills it, yours is never in the link.
Related: the Open In launcher hands the current viewport off to other web viewers (River-REM, ESRI Wayback, Google Earth, …) instead of exporting anything.