Basemaps & Offline Maps
Tavak draws your survey on top of a basemap. There are three kinds, and you control all of them:
- OpenStreetMap — the default basemap, always available, nothing to set up.
- Online basemaps you add yourself — any XYZ/TMS tile service: satellite imagery, your organisation’s tile server, an ArcGIS REST service, a WMTS endpoint. Covered below.
- Offline basemaps — MBTiles files and georeferenced images (GeoTIFF, GeoPDF, JPEG/PNG with a world file) imported from the device.
Adding an online basemap
In the app:
- Open the Data tab and select Basemaps.
- Tap Add Basemap, then Online Basemap.
- Give it a Name — how it will appear in the basemap list.
- Paste the Tile URL template (see below).
- Optionally set subdomains, the zoom range, TMS, and an attribution line.
- Tap Test. Tavak fetches one tile at the service’s minimum zoom, near your position when it is known, and tells you what came back — so a typo or a blocked service shows up here instead of as an empty map. For a regional service, test from inside its coverage.
- Tap Add. The basemap now appears in Data › Basemaps and in the layers button on the map.
To use it, tap it in the Basemaps list, or open the layers button on the map and pick it under Online Basemaps. To change or remove it later, use the pencil icon on its card, or swipe the card from right to left.
The tile URL template
A tile service addresses each tile by zoom level and grid position. The template tells Tavak where to put those numbers:
https://example.com/tiles/{z}/{x}/{y}.png
| Placeholder | Meaning |
|---|---|
{z} | Zoom level. Required. |
{x} | Tile column. Required. |
{y} | Tile row. Required. |
{s} | Optional. Rotates through the subdomains you list (for example a, b, c), spreading requests across several hostnames. |
The three required placeholders may appear in any order, which is what lets ArcGIS-style services work unchanged — they order the path {z}/{y}/{x}:
https://<your-arcgis-host>/arcgis/rest/services/<ServiceName>/MapServer/tile/{z}/{y}/{x}
A WMTS endpoint works the same way once expressed in RESTful tile form. If a provider documents its tiles as {TileMatrix}/{TileRow}/{TileCol}, paste it as is — Tavak rewrites those to {z}, {y}, {x}, and a {-y} row turns the TMS scheme on. Any other placeholder (an {apikey}, say) is refused: put the key into the URL directly. Only https:// addresses are accepted.
If the service needs a key, put it in the template exactly as the provider documents it, for example as a query parameter:
https://example.com/tiles/{z}/{x}/{y}.png?key=YOUR_KEY
The key is stored on the device with the basemap. Treat a URL containing your key as a credential: it is not encrypted, and it travels to that provider with every tile request.
Worked example: Esri World Imagery
Esri publishes World Imagery as an ArcGIS REST tile service. Entered as an online basemap, the settings are:
| Field | Value |
|---|---|
| Name | Esri World Imagery |
| Tile URL template | https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x} |
| Subdomains | (leave empty) |
| Min zoom | 0 |
| Max zoom | 19 — raise to 20–23 if your area has deeper coverage, lower it if tiles stop appearing |
| TMS tile scheme | Off |
| Attribution | Esri, Maxar, Earthstar Geographics, and the GIS User Community |
Note the {z}/{y}/{x} order — row before column — which is how ArcGIS REST addresses tiles. The same shape works for other services on that server (swap World_Imagery for the service name) and for an ArcGIS Server your own organisation runs.
Check your entitlement first. Esri’s services are governed by Esri’s terms of use, and some uses require an ArcGIS subscription or an API key. Make sure your licence covers what you intend to do, and keep the attribution line visible.
The other fields
| Field | What it does |
|---|---|
| Subdomains | The values substituted for {s}. Required if — and only if — your template contains {s}. |
| Min / Max zoom | The range the service actually serves. Max zoom matters most: past it the map keeps zooming and scales the last real tiles up, rather than showing blank tiles. |
| TMS tile scheme | TMS numbers tile rows from the bottom, XYZ from the top. If your imagery appears vertically flipped or the map looks mirrored north–south, turn this on. |
| Attribution | The credit line the provider requires. Enter it so it travels with the basemap. |
When it doesn’t work
- Test says “Tile not found (HTTP 404)”
- The path is wrong, or the axis order is. Try swapping
{x}and{y}— ArcGIS services use{z}/{y}/{x}while most others use{z}/{x}/{y}. - Test says “Access denied” (HTTP 401 or 403)
- The service needs a key you haven’t supplied, the key is wrong or expired, or the provider does not permit this kind of use. Check your subscription and the provider’s terms.
- Test succeeds but the map is blank at your survey site
- The service may not have coverage there, or not at that zoom. Zoom out and check; then set Max zoom to the deepest level with real tiles.
- The imagery is upside down
- Turn on TMS tile scheme.
- Tiles load slowly
- If the provider offers subdomains, use
{s}with them. Otherwise, download an offline area before going to the field. - “Server replied with text/html, not an image tile”
- The URL points at a web page or an error page rather than the tile endpoint — a sign-in page, for instance. Use the tile endpoint the provider documents.
Online basemaps in the field
Online basemaps need a connection. Tiles you have already viewed are cached automatically, so recently visited areas keep working when the signal drops, but the cache is not a substitute for planning. For a site with no coverage, either download an offline area in advance or import an MBTiles/GeoTIFF basemap.
Cloud Optimized GeoTIFF (COG) served over HTTP is not supported as a basemap yet. Today, use a GeoTIFF imported from the device, or publish the raster as an XYZ tile service and add it as an online basemap.
Offline basemaps
Two kinds, both imported from files on the device via Data › Basemaps › Add Basemap. Both are copied into the app’s storage, so the original can be deleted afterwards.
MBTiles maps
An MBTiles file with PNG/JPG/WebP tiles — from QGIS (Processing › Raster tools › Generate XYZ tiles (MBTiles)), MOBAC, TileMill, or any tile downloader. Pick MBTiles (Raster), choose the file, check the name and metadata, and import. There is no size limit beyond the phone’s storage. A vector (PBF) MBTiles is recognised and pointed to the Layers tab instead.
To use it, tap its card and Activate, or pick it in the map’s layers button under Offline Basemaps. The active offline map is remembered across restarts. Beyond the map’s deepest zoom the tiles are scaled up rather than going blank; outside its extent the map is empty.
Georeferenced images
Pick Georeferenced Image for:
- GeoTIFF — LZW, DEFLATE, PackBits and JPEG compression; 8- to 64-bit and floating-point bands; palette and bilevel images; nodata and alpha; projected files (UTM, TM-3, any EPSG) are warped through their coordinate system.
- GeoPDF — the map is registered from the PDF’s geospatial data.
- JPEG, PNG, WebP or TIFF with a world file (
.jgw,.pgw,.tfw…) — up to 50 megapixels; use GeoTIFF above that.
At import the image is converted once into a tiled map (Web Mercator MBTiles), with progress and a cancel button. Afterwards it draws as tiles: no display-size cap, a bounded amount of memory however large the source, and smooth zooming. Each image has its own opacity and can be used as an overlay on top of the basemap or, with Use as basemap, instead of it.
If the world file holds projected coordinates and the projection is not stated, the Coordinate System screen asks for it — search an EPSG code or pick a UTM zone. Not supported: BigTIFF, planar-configuration TIFF, CCITT / JPEG 2000 / ZSTD compression; these are reported, not silently mis-drawn.
Vector tiles
An MBTiles file with MVT/PBF vector tiles (tippecanoe, QGIS, Planetiler) is imported from Data › Layers › Add Layer › Vector Tiles (MBTiles). It is drawn from the tiles as you move — polygons with their holes, lines, points — styled with the colour, width and fill you set in the layer’s style. Past the tileset’s deepest zoom the last level is scaled up.
Managing basemaps
In Data › Basemaps, tap a card for its options (activate or show, zoom to, delete; for georeferenced images also opacity and use-as-basemap); swipe a card from right to left to delete it. Deleting removes the copied file. Choosing an online basemap while an offline map is active switches the map back to online.