Map Server: offline map tiles for TALOS and ATAK, synced once and served anywhere
Offline map tile sync and HTTP tile server for defence platforms. Pre-download OpenStreetMap, satellite and topographic tiles for your area of operations, then serve them locally to TALOS, BMS, HMI and ATAK clients with no internet connection required.
Map Server (the gva-tile-server binary) is a lightweight HTTP tile cache and server built for Generic Vehicle Architecture (GVA) platforms. It pulls tiles from more than 60 online sources — OpenStreetMap, ESRI/ArcGIS, Bing, Google, Geoscience Australia, Copernicus Sentinel-2 and more — pre-syncs a bounding box and zoom range for your area of operations, and then serves those tiles over a standard XYZ slippy-map HTTP API to the BMS, HMI and any external application. A built-in Leaflet map viewer and a full REST API (with Swagger/OpenAPI docs) make it easy to inspect coverage, drive syncs and monitor progress without a BMS or HMI instance running. It installs as a systemd service with a tile cache shared between the server and the BMS, so once an area is synced the whole stack works fully offline.
Live demo — UK & Northern Ireland
This instance has OpenStreetMap — Standard tiles cached end-to-end for Great Britain and Ireland/Northern Ireland at zoom levels 0–19, down to Belfast city centre. Pan and zoom below to explore the offline-ready coverage — no account or download required.
Live Map Server demo — UK & Northern Ireland OpenStreetMap coverage
See every source available on this instance — cached and online — at map.astutesystems.co.uk/sources, or the full health status.
Features
- Pre-download tiles for any bounding box and zoom range from 60+ online map sources (OpenStreetMap, ESRI/ArcGIS, Bing, Google, Geoscience Australia, Copernicus Sentinel-2, OpenTopoMap, CartoDB, USGS, NRCan and more)
- Serves cached tiles over HTTP in standard XYZ slippy-map format to BMS, HMI and external apps
- REST API for sync control, health and progress, with Swagger/OpenAPI docs at
/docs - Browser-based Leaflet map viewer (
--map-viewer) for ad-hoc inspection — no BMS/HMI instance needed - OAuth2 client for Copernicus Sentinel-2 satellite imagery, rate-limited to the CDSE fair-usage policy
- Installable as a systemd service with a tile cache shared between the server and the BMS (
/var/cache/gva-maptiles) - Portable tile cache — copy to removable media for fully disconnected deployment
- Fully offline operation once an area of operations is synced — no internet required in the field
Data Sources
Thirteen local sources mirror their remote counterparts once synced:
| Local Source | Remote Source | Type |
|---|---|---|
| Local - OpenStreetMap | OpenStreetMap - Standard | Street |
| Local - ESRI World Imagery | ESRI - World Imagery | Satellite |
| Local - Google Hybrid | Google - Hybrid | Hybrid |
| Local - Google Satellite | Google - Satellite Only | Satellite |
| Local - CartoDB Dark | CartoDB - Dark Matter | Dark theme |
| Local - OpenTopoMap | OpenTopoMap | Topographic |
| Local - Sentinel-2 True Color | Sentinel-2 L2A - True Color | Satellite |
| Local - Sentinel-2 False Color | Sentinel-2 L2A - False Color | Vegetation |
| Local - Sentinel-2 SWIR | Sentinel-2 L2A - SWIR | Satellite (SWIR) |
| Local - OpenSeaMap Base | OpenSeaMap – Base Chart | Nautical |
| Local - Bing Satellite | Bing - Satellite | Satellite |
| Local - GA National Base Map | GA - National Base Map | Street |
| Local - GA Topographic | GA - Topographic | Topographic |
"AWS - Terrarium Elevation (DEM)" streams directly from s3.amazonaws.com on every request by design (no local mirror), so the terrain-relief overlay works in standalone TALOS without depending on Map Server being installed or running.
HTTP API
The tile server exposes a REST API on port 8070 (configurable via --port):
| Method | Path | Description |
|---|---|---|
GET | /tiles/{source}/{z}/{x}/{y}.png | Serve a cached tile |
GET | /sources | List all available tile sources |
GET | /sync/status | Current sync job status |
POST | /sync/start | Start a tile sync job |
POST | /sync/stop | Stop the current sync job |
GET | /health | Health check |
GET | /map | Browser-based Leaflet map viewer |
GET | /docs | Interactive Swagger/OpenAPI documentation |
Tiles are served in standard XYZ slippy-map format, e.g. GET /tiles/openstreetmap-openstreetmap---standard/12/2038/1365.png. See the live API documentation for the full schema.
Deployment
- Install from the TALOS product line:
sudo apt install gva-tile-server - Enable and start as a systemd service:
sudo systemctl enable --now gva-tile-server - Shares a tile cache directory (
/var/cache/gva-maptiles) with the BMS application — tiles synced by one are immediately available to the other - Standalone container build available (no AstuteDDS/LDM dependency) — runs independently with TLS support (Qt 6.4+
QSslServer) - Copernicus Sentinel-2 imagery requires free CDSE OAuth2 credentials, configured via
/etc/default/gva-tile-server - Pre-mission tile sync for an area of operations, then disconnect — or copy the cache to removable media for air-gapped deployment
Licensing
Map Server aggregates data from multiple third-party providers, each with its own licence terms. You are responsible for complying with the licence terms of each source you use.
Safe for offline / defence use (free + open): OpenStreetMap (ODbL), OpenTopoMap, OpenSeaMap, CycleOSM, CartoDB (CC-BY), Copernicus Sentinel-2 (free ESA registration), Geoscience Australia (CC-BY 4.0), US Government sources (USGS, NAIP, FEMA — public domain), Canada (NRCan), Finland (NLS), Poland (GUGiK) and AWS Open Data Terrarium elevation tiles.
Requires a paid licence for offline caching: Google Maps, Bing Maps and ESRI/ArcGIS all prohibit or restrict bulk offline caching without an enterprise licence or subscription.
Most free sources require attribution — see the full licensing guide for the exact attribution text per provider.