# Basemaps and elevation

URL: /deploy/basemaps

Foxborne draws every map from data stored in your deployment and never calls a tile service, so an air-gapped enclave shows the same map. This page covers what the map draws today, where its data lives and the offline vector basemap to come.



The map answers where: where the vehicle was at each event, and whether terrain stood between it and range control. Foxborne draws it from data stored in your own deployment. No tile service is ever called, so an air-gapped enclave shows the same map as a connected network.

## Where map data lives [#where-map-data-lives]

Basemaps and elevation are a data class of their own, kept beside your originals and reports:

| Data                   | Where it lives      | Handling                                                                                                                |
| ---------------------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| Basemaps and elevation | Your object storage | Maps are drawn from elevation data you load. Nothing calls a tile service, so an air-gapped network shows the same map. |

**Hosting** shows the store under **Where each kind of data lives**. The example deployment's row reads:

| Data                                                                                                      | Location                     | Encryption            | Retention           |
| --------------------------------------------------------------------------------------------------------- | ---------------------------- | --------------------- | ------------------- |
| **Basemaps and elevation**: Site elevation and imagery your team uploads. Maps never call a tile service. | `s3://hfr-foxborne-basemaps` | SSE-KMS, customer key | Kept until replaced |

The bucket name is an example. The same page lists **Map and tile services** under **Outbound connections** as **None**, with the note: "Nothing. Basemaps are drawn from elevation data stored in your account." The store is encrypted with your key, as [Encryption and keys](/security/keys) describes.

## What the map draws from elevation [#what-the-map-draws-from-elevation]

The console draws the map in the browser, from the site's elevation model, its survey features and the run's track. It computes contours from the elevation data as you zoom, and no request goes to a map server.

| Layer         | What the elevation data gives it                                                                                                         |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| Contours      | Lines at 5 m when the view spans more than 2,500 m, 2 m beyond 900 m, 1 m beyond 300 m and 0.5 m closer in. Every fifth line is heavier. |
| Spot heights  | An × and the height, such as 1,390 m, on hills 15 m or more high                                                                         |
| Ground height | The height under the pointer in the map's footer, and **Ground elevation** in the evidence inspector's **Position** block                |
| Line of sight | The line from the range control mast to the vehicle's antenna, checked against the terrain at 119 points                                 |

The MGRS grid, the survey boundary and the site's routes, lanes and berms draw over the terrain. Positions read in MGRS at 10 m, the form used on the range.

The elevation data is your own, such as DTED or GeoTIFF for your sites.

### Line of sight from elevation [#line-of-sight-from-elevation]

Foxborne draws a straight line from the top of the range control mast to the vehicle's antenna. It finds the point where terrain rises furthest above that line. When terrain blocks the line, the map marks that point with an amber × and its height above the line.

The check models terrain only: earth curvature, atmospheric refraction and Fresnel zone clearance are not modeled. A clear line says the geometric path was open, not that the link had margin. [Read the map](/investigate/map#line-of-sight) gives the antenna heights and an example.

## The offline vector basemap [#the-offline-vector-basemap]

The console map is moving to an offline vector basemap: a single PMTiles file, plus an elevation file you load. Both belong to the basemaps and elevation data class in your object storage, and neither needs a path out of your network.

<Availability status="planned" /> Loading a PMTiles basemap and an elevation file into a deployment is planned.

PMTiles is a single-file archive of map tiles, and a reader fetches only the byte ranges it needs from it. The archive can therefore sit in your own object storage and be read from there. There is no tile server to run and no outside service to call.

## Attribution [#attribution]

Basemap data from OpenStreetMap carries the attribution "© OpenStreetMap contributors". OpenStreetMap data is licensed under the Open Database License (ODbL).

## The example site [#the-example-site]

The example dataset's site sits in the Glass Mountains of Pecos County, Texas, in the MGRS 100 km square 13R FP. Its positions read like `13R FP 7640 8765`: the grid zone, the 100 km square, then four digits each of easting and northing.

That reference is where INC-0142's first finding happened, at a ground height of 1,148 m. The evidence inspector adds latitude and longitude, and the map shows MGRS only.

## Air-gapped deployments [#air-gapped-deployments]

Nothing about the map changes inside an enclave. The data it draws from sits in your object storage, and the map calls nothing outside. [Air-gapped installation and updates](/deploy/air-gapped) covers the rest of an enclave install.

## Related [#related]

<Cards>
  <Card title="Read the map" href="/investigate/map" icon="map">
    Every layer the map draws, and how to read a position.
  </Card>

  <Card title="Air-gapped installation and updates" href="/deploy/air-gapped" icon="lock">
    Run Foxborne with no network path out.
  </Card>

  <Card title="Architecture and network paths" href="/deploy/architecture" icon="hosting">
    Where each kind of data lives, and every path in and out.
  </Card>

  <Card title="Encryption and keys" href="/security/keys" icon="key">
    The key that protects the basemaps store and everything else.
  </Card>
</Cards>
