---
title: "Use MapTiler maps in ATAK | Guides | Tutorials"
description: "Add MapTiler basemaps to ATAK on Android."
---

> For AI agents: a documentation index is available at [/llms.txt](https://docs.maptiler.com/llms.txt). Markdown versions of all pages are available by appending .md to any URL.

# Use MapTiler maps in ATAK

[TAK](https://tak.gov/) (Team Awareness Kit) is a family of map-centric situational awareness apps used mainly in defense, emergency response, and public safety. This guide covers **ATAK**, the Android version, and explains how to show MapTiler maps in it. You can serve them either from the MapTiler API or from your own self-hosted MapTiler Server.

## Add a MapTiler map to ATAK

ATAK consumes maps as raster XYZ tiles, fetched on demand as you pan and zoom, and the mapping service is defined in a MOBAC-format XML file. Adding a MapTiler basemap therefore means creating one small file and copying it to the right folder, with no further configuration needed. Here are the steps:

1.  [Open the map](https://cloud.maptiler.com/maps/) you want to use in ATAK. It can be any map, including your own custom style. Note its **style ID**. For example, in `https://cloud.maptiler.com/maps/streets-v4/` the ID is **streets-v4**. Custom maps have a generated ID of random letters and numbers.
    
2.  Copy your [MapTiler API key](https://cloud.maptiler.com/account/keys/). We strongly recommend that you create a new dedicated key for ATAK, so you can revoke it without affecting your other projects.
    
    Warning
    
    The key is stored as plain text in the XML file on the device, so anyone with access to the device can read it. If you lose the device, revoke the key.
    
3.  Create an XML file with this content:
    
    ```xml
    <?xml version="1.0" encoding="UTF-8"?>
     <customMapSource>
       <name>MapTiler Streets</name>
       <minZoom>0</minZoom>
       <maxZoom>22</maxZoom>
       <tileType>png</tileType>
       <tileUpdate>None</tileUpdate>
       <url>https://api.maptiler.com/maps/streets-v4/256/{$z}/{$x}/{$y}.png?key=YOUR_MAPTILER_API_KEY_HERE</url>
       <backgroundColor>#000000</backgroundColor>
     </customMapSource>
    ```
    
4.  In the XML file, adjust these parts of the `<url>` parameter:
    
    -   `streets-v4`: Replace with the map style ID from step 1.
    -   `YOUR_MAPTILER_API_KEY_HERE`: Replace with the API key from step 2.
    -   **Do not** replace or edit the `{$z}/{$x}/{$y}` MOBAC placeholders.
    
    Edit other parameters if needed:
    
    -   `<name>`: This is the name you’ll see in ATAK’s map list.
    -   `<minZoom>` / `<maxZoom>`: available zoom range. 0–22 is a safe range for MapTiler maps. Custom maps can differ, depending on their data.
    -   `<tileType>`: the tile format, `png` by default. If you change it to `jpg`, also change it in the `<url>` so that the two match.
    -   `<tileUpdate>`: Caching behavior, don’t edit manually. See [Maps for offline use](#caching) below.
    -   `<backgroundColor>`: What color to show if map tiles are missing.
    
    Tip
    
    To check that the URL works before you copy the file to your device, open it in a browser with real numbers, for example `https://api.maptiler.com/maps/streets-v4/256/3/4/2.png?key=YOUR_MAPTILER_API_KEY_HERE`. You should see a map tile.
    
5.  Save the file (for example as `MapTiler_Streets.xml`) and copy it to the `atak/imagery` folder on your Android device.
    
6.  Open ATAK. The map appears in the layer selector.
    

If maps in ATAK blink over each other or look mixed up, make sure there’s only one XML file in `atak/imagery`.

## Self-hosted deployments

For air-gapped or fully offline deployments, [MapTiler Server](https://docs.maptiler.com/guides/on-prem/server/) hosts maps on your own infrastructure (Windows, Linux, macOS, or Docker). ATAK connects to your server the same way, using the same XML format. Only the `<url>` differs, pointing to your server instead of MapTiler’s public API.

```xml
<?xml version="1.0" encoding="UTF-8"?>
<customMapSource>
  <name>MapTiler Server Streets</name>
  <minZoom>0</minZoom>
  <maxZoom>22</maxZoom>
  <tileType>png</tileType>
  <tileUpdate>None</tileUpdate>
  <url>http://your-server:3650/api/maps/streets/256/{$z}/{$x}/{$y}.png</url>
  <backgroundColor>#000000</backgroundColor>
</customMapSource>
```

Replace `your-server:3650` with your server’s address and port, and `streets` with the ID of your map. No API key is needed. The Android device must be able to reach the server over the network.

MapTiler Server works with modern vector map data, which is compact and rich in detail. It renders the data into raster PNG tiles on the fly, because raster tiles are the format ATAK consumes. You don’t need to prepare any raster data yourself.

For help with setting up MapTiler Server and self-hosted maps on your own infrastructure, see [Installation](https://docs.maptiler.com/guides/on-prem/server/installation/) and [Getting started](https://docs.maptiler.com/guides/on-prem/server/getting-started/).

## Maps for offline use

ATAK can download map tiles for a selected area in advance, so the map works offline in the field. For details on how to set it up, refer to ATAK’s documentation. Keep in mind that downloading large areas at high zoom levels takes significant time and device storage.

Downloading an area in advance isn’t the same as automatic caching, where an app or browser briefly keeps the tiles you’ve already viewed. Check that your MapTiler plan covers it:

-   **MapTiler API**: Bulk downloading map tiles from the API requires a [Custom plan](https://www.maptiler.com/cloud/pricing/).
-   **MapTiler Server** (recommended for offline use): Downloading from your own server is fine, but using the maps on multiple devices requires an [On-prem Custom plan](https://www.maptiler.com/data/pricing/).

To agree on the right plan, [contact our Sales team](https://www.maptiler.com/contacts/#contact).
