> For the complete documentation index, see [llms.txt](https://docs.mapbox.com/style-spec/llms.txt)

# Terrain

A style's `terrain` property is a global modifier that elevates layers and markers based on a DEM data source.

```json
"terrain": {
    "source": "mapbox-raster-dem",
    "exaggeration": 2
}
```

Terrain is supported only in `globe` and `mercator` [projections](https://docs.mapbox.com/style-spec/reference/projection/).

The [`mapbox-terrain-dem-v1`](https://docs.mapbox.com/data/tilesets/reference/mapbox-terrain-dem-v1/) raster tileset is compatible with `terrain`. See the following code examples for your platform to learn how to enable terrain in your map style:

-   [Mapbox GL JS](https://docs.mapbox.com/mapbox-gl-js/example/add-terrain/)
-   [Maps SDK for iOS](https://docs.mapbox.com/ios/maps/examples/sky-layer/)
-   [Maps SDK for Android](https://docs.mapbox.com/android/maps/examples/compose/style-terrain/)

### source

Required [string](https://docs.mapbox.com/style-spec/reference/types/#string) .

Name of a source of `raster_dem` type to be used for terrain elevation.

| SDK Support | Mapbox GL JS | Android SDK | iOS SDK |
| --- | --- | --- | --- |
| basic functionality | >= 2.0.0 | >= 10.0.0 | >= 10.0.0 |

### exaggeration

Optional [number](https://docs.mapbox.com/style-spec/reference/types/#number) between `0` and `1000` inclusive. Defaults to `1`. *Requires* source. Supports [`interpolate`](https://docs.mapbox.com/style-spec/reference/expressions/#interpolate)expressions. Transitionable.

Exaggerates the elevation of the terrain by multiplying the data from the DEM with this value.

| SDK Support | Mapbox GL JS | Android SDK | iOS SDK |
| --- | --- | --- | --- |
| basic functionality | >= 2.0.0 | >= 10.0.0 | >= 10.0.0 |