The honest way to get usable maps offline: a ready‑to‑import map‑source pack for ATAK/WinTAK (lawful sources only), the glue scripts for imagery and paper backups, and the rules that keep it legal and sane. What's automatable is generated here; the final "Download" you tap in ATAK yourself.
01
Common‑sense rules (read first)
Use sources you're allowed to cache. OSM, USGS, Esri public services, LINZ, and other national mapping agencies — and data you actually license.
Don't bulk‑download Google/Bing tiles. Their terms forbid mass download, scraping and offline re‑hosting. Viewing ATAK's own cache while a source is on screen is field practice; a bulk scraper is a ToS problem.
Work by area of operations. Never build one worldwide tileset — zoom 18 over a region is billions of tiles. Cache a wide area coarse, then add small high‑detail patches to the same tileset.
Mind the caps & storage. ATAK's per‑download cap is ~300k–400k tiles; detailed imagery is multi‑GB fast. Use WinTAK for big pulls, then send a data package to the phone over Wi‑Fi/USB — not a weak radio link.
Keep a paper backup. Paper works when phones, batteries and networks don't — print the same extent with a grid, coordinates and magnetic declination.
Keep CRS consistent. ATAK is happiest with properly georeferenced data; sloppy GeoTIFF merges cause projection mismatches.
02
The map‑source pack — import‑ready
Download a source file and import it in ATAK: Maps → import (or drop it in atak/tools/). All lawful, cacheable sources.
LINZ key: the NZ Topo50 file has a YOUR_LINZ_API_KEY placeholder — replace it with a free LINZ Basemaps Developer key (basemaps.linz.govt.nz → Contact us). For a bigger community set, import the joshuafuller/ATAK‑Maps pack. Official ATAK/CivTAK: tak.gov.
03
The layer stack
A "full" map isn't one giant file — it's a stack you toggle in Overlay Manager.
Layer
Role
Source
Base imagery
What the ground looks like
Esri / OSM tiles, or USGS GeoTIFF
Topo / contours
Terrain & elevation
Esri Topo, OpenTopoMap, USGS
Roads / labels
Navigation
OSM
High‑res patches
Buildings, yards, objectives
USGS ortho GeoTIFF (US)
Your overlays
Routes, points, survey plans
KML/KMZ, CoT, data packages
Tie‑in: the Survey planner exports a KML flight plan you import straight into ATAK as an overlay — that's your "your overlays" row, generated for you.
04
The workflow
Install CivTAK (tak.gov) and import the map‑source pack above.
Cache a wide area, coarse. Maps → pick a source → Select Area → draw a rectangle → keep the tile count under the cap → download to a tileset.
Add high‑detail patches of the same source for towns, trails and objectives — into the same tileset.
US only — add USGS ortho. Free USGS EarthExplorer account → High Resolution Ortho Imagery → bulk download → import the GeoTIFF (mosaic first if many — see the glue below).
Stack in Overlay Manager — imagery on top in key areas, topo underneath as a toggle, roads/labels as another. Lock a layer if sources fight.
Paper backup — print the same extent in QGIS with grid + coordinates + declination.
Clone to other devices — package as an ATAK data package; copy large base maps over Wi‑Fi/USB.
05
Glue scripts (desktop)
The parts that are automatable — run these on a desktop with GDAL / QGIS installed.
Mosaic adjacent GeoTIFFs (GDAL)
gdalbuildvrt mosaic.vrt tile1.tif tile2.tif tile3.tif
gdal_translate -of GTiff -co TILED=YES \
-co COMPRESS=JPEG mosaic.vrt ao_imagery.tif
# keep every input in the same CRS first, e.g.:
# gdalwarp -t_srs EPSG:3857 in.tif in_3857.tif
Paper map layout (PyQGIS, sketch)
layout = QgsPrintLayout(QgsProject.instance())
layout.initializeDefaults()
# add map item, set extent + scale, then a grid:
grid = mapItem.grid()
grid.setEnabled(True); grid.setIntervalX(1000); grid.setIntervalY(1000)
# add scale bar, north arrow, declination note, export:
QgsLayoutExporter(layout).exportToPdf('ao_map.pdf', QgsLayoutExporter.PdfExportSettings())
USGS imagery (US): use the official USGS M2M API / bulk tools (e.g. the usgsxplore Python package) — search by bounding box + date + cloud cover, download, then mosaic with the GDAL snippet. Legal and clean on USGS products.
06
What we can & can't automate
Generate the map‑source XML (above), GDAL mosaics, PyQGIS paper layouts, USGS search/download scripts, and KML/KMZ overlays.
Export your survey plans and geo data as ATAK‑importable overlays from this app.
Tap "Download" inside ATAK on your phone — that's a device action you do (the tile cache lives in the app).
Bulk‑scrape commercial tiles — won't do it; it breaks their terms. Lawful sources only.