Source: hillshading
| Type | Raster-DEM (raster-dem) |
| Format | WebP, 512×512 px tiles |
| Encoding | Mapbox terrain-RGB |
| Zoom levels | 5–12 (overzoomed beyond z12 for smooth display at higher zooms) |
| Coverage | Europe, Oceania, and expanding — contact us to request a country |
| Billing | 1 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
- Europe — Sonny’s EU DTM data (CC BY 4.0), unified from national lidar and satellite sources across European countries
- Other regions — JAXA ALOS AW3D30 global 30 m DEM
See Copyright and sources for full attribution.
Notes
tileSize: 512andencoding: 'mapbox'are required in the source configuration- Coverage is not yet worldwide — it expands country by country