Source: hillshading

TypeRaster-DEM (raster-dem)
FormatWebP, 512×512 px tiles
EncodingMapbox terrain-RGB
Zoom levels5–12 (overzoomed beyond z12 for smooth display at higher zooms)
CoverageEurope, Oceania, and expanding — contact us to request a country
Billing1 unit per tile

TileJSON

https://api.mapriot.com/hillshading?apiKey=<key>

Tile URL

https://api.mapriot.com/hillshading/{z}/{x}/{y}?apiKey=<key>

WebP tiles with elevation encoded in RGB channels.


Zoom levels

Hillshading tiles are generated at zoom levels 5–12. The outdoor style renders them from approximately z5, taking over from the relief layer which covers z0–4.

At zoom levels beyond 12, MapLibre overzooms the z12 tiles — this still looks good because hillshading is semi-transparent and blends smoothly with the rest of the style.


Usage in MapLibre GL JS

The source is pre-configured in the outdoor style as hillshading. To add it to a custom style:

map.addSource('hillshading', {
  type: 'raster-dem',
  url: 'https://api.mapriot.com/hillshading?apiKey=<key>',
  tileSize: 512,
  encoding: 'mapbox',
});

// 2D hillshade layer
map.addLayer({
  id: 'hillshade',
  type: 'hillshade',
  source: 'hillshading',
  paint: {
    'hillshade-shadow-color': '#473B24',
    'hillshade-illumination-direction': 335,
    'hillshade-exaggeration': 0.5,
  },
});

// 3D terrain (optional)
map.setTerrain({ source: 'hillshading', exaggeration: 1.5 });

Elevation API

This source also powers the Elevation API, which returns the altitude in metres for any coordinate without fetching tiles directly.


Data sources

See Copyright and sources for full attribution.


Notes

  • tileSize: 512 and encoding: 'mapbox' are required in the source configuration
  • Coverage is not yet worldwide — it expands country by country