Skip to content

NIMBO Hillshade

Add depth and dimension to your basemaps with the Nimbo Global Hillshade layer. Derived from our high-precision Nimbo Terrain data, this pre-calculated layer provides a visually stunning representation of the world’s relief, optimized for both aesthetic appeal and topographic clarity.

nimbo_hillshade.png

The Global Hillshade layer is a raster tile service providing a greyscale representation of the terrain’s surface. Unlike standard, on-the-fly generated hillshades, our layer is pre-processed using advanced cartographic techniques to ensure consistent lighting, maximized contrast, and artifact-free tile edges.

It is designed to be used as an overlay (with transparency/multiply blend modes) on top of satellite imagery or vector maps to highlight topography.

  • Source Data: Based on Nimbo Terrain (RGB encoded DEM).
  • Zoom Levels: Available from Zoom 0 to Zoom 10.
  • Format: Highly compressed, quality-optimized WebP.
  • Adaptive Lighting: Sun altitude and azimuth are tuned per zoom level to maintain readability from global views to local valleys.
  • Seamless Edges: Processed with edge-reflection padding to eliminate grid artifacts common in standard tile generation.

FeatureDescription
Coordinate SystemWeb Mercator (EPSG:3857)
Tile Size256x256 px
FormatWebP (Grayscale)
CoverageGlobal
ResolutionPre-calculated up to Zoom 10 (approx. 150m/pixel at equator)
Endpointhttps://prod-data.nimbo.earth/tiles/hillshade/{z}/{x}/{y}.webp?kermap_token=<YOUR_TOKEN>

Note: For zoom levels higher than 10, we recommend falling back to client-side hillshading using the Nimbo Terrain RGB tiles to ensure maximum detail at street level.


The Hillshade layer is best utilized with a “Multiply” raster-opacity blending mode. This allows the shadows to darken the underlying map (satellite or vector) while keeping the highlights transparent, creating a natural 3D effect.

Here is how to add the source and layer to your map style:

map.on('load', () => {
// 1. Add the Hillshade Source
map.addSource('nimbo-hillshade-source', {
'type': 'raster',
'tiles': [
'https://prod-data.nimbo.earth/tiles/hillshade/{z}/{x}/{y}.webp?kermap_token=<YOUR_TOKEN>'
],
'tileSize': 256,
'maxzoom': 10
});
// 2. Add the Layer with "multiply" blending
map.addLayer({
'id': 'nimbo-hillshade-layer',
'type': 'raster',
'source': 'nimbo-hillshade-source',
'paint': {
'raster-opacity': 0.6, // Adjust intensity (0.0 - 1.0)
'raster-fade-duration': 0
}
// Note: MapLibre does not support 'raster-blend-mode': 'multiply' natively
// in the style spec yet, but standard opacity often suffices.
// For advanced blending, CSS composition filters on the canvas container
// or specific map renderers may be required.
}, 'your-label-layer-id'); // Insert below labels
});
L.tileLayer('https://prod-data.nimbo.earth/tiles/hillshade/{z}/{x}/{y}.webp?kermap_token=<YOUR_TOKEN>', {
maxZoom: 10,
attribution: '&copy; <a href="https://nimbo.earth">Nimbo</a>',
opacity: 0.5 // Adjust based on base layer brightness
}).addTo(map);

Want to use Nimbo Hillshade for your cartographic projects in QGIS or ArcGIS?

comparison_nimbo_basemap_vs_hillshade_overlay.png

Visual comparison: Nimbo Basemap without (left) and with (right) the Nimbo Hillshade layer applied.


Why use the Nimbo Global Hillshade instead of generating it yourself? We have applied a robust processing pipeline designed to solve common GIS visualization issues.

Standard hillshades often look too dark when zoomed out or too flat when zoomed in. We utilize a Zoom-Dependent Parameter tuning (Z-Curve).

  • Low Zooms (0-4): High vertical exaggeration and steeper sun angles to highlight major mountain ranges.
  • High Zooms (5-10): Reduced exaggeration and “S-Curve” contrast adjustments to preserve subtle terrain details without over-saturation.

Before generating the shade, the elevation data undergoes a slight Gaussian blur (to reduce noise) and Sharpening (to enhance ridges), followed by a non-linear S-Curve contrast pass. This results in a “cartographic grade” image that pops off the screen compared to linear renderings.