Visualize points with a heatmap

Explore in the sandboxView live

This sample demonstrates how to construct a HeatmapRenderer for visualizing large, dense point datasets. The HeatmapRenderer visualizes points as a raster surface where strong colors indicate areas with a high density of points. Areas with weak or no colors indicate places that don't have many points.

Knowledge of how the heatmap is implemented is crucial for understanding how to construct the renderer. Each pixel in the view is assigned an intensity value depending on its proximity to one or more points. If a field is specified, then the intensity value is multiplied by the field value.

The heatmap is constructed by passing a set of colorStops to the renderer. These map a specific color to a ratio value. The ratio represents the ratio of the pixel's intensity value to the maxPixelIntensity of the renderer. Therefore, the lower the maxPixelIntensity, the hotter the map will look.

const renderer = {
  type: "heatmap",
  colorStops: [
    { color: "rgba(63, 40, 102, 0)", ratio: 0 },
    { color: "#472b77", ratio: 0.083 },
    { color: "#4e2d87", ratio: 0.166 },
    { color: "#563098", ratio: 0.249 },
    { color: "#5d32a8", ratio: 0.332 },
    { color: "#6735be", ratio: 0.415 },
    { color: "#7139d4", ratio: 0.498 },
    { color: "#7b3ce9", ratio: 0.581 },
    { color: "#853fff", ratio: 0.664 },
    { color: "#a46fbf", ratio: 0.747 },
    { color: "#c29f80", ratio: 0.83 },
    { color: "#e0cf40", ratio: 0.913 },
    { color: "#ffff00", ratio: 1 }
  maxPixelIntensity: 25,
  minPixelIntensity: 0

const layer = new CSVLayer({
  url: "",
  title: "Magnitude 2.5+ earthquakes from the last week",
  renderer: renderer

See the HeatmapRenderer documentation for more specifics of this implementation.

Additional visualization samples and resources