---
title: "Heatmap layer no zoom compensation (heatmap helper) | JavaScript maps SDK"
description: "Create heatmap layers without zoom-based radius compensation."
---

> For AI agents: a documentation index is available at [/llms.txt](https://docs.maptiler.com/llms.txt). Markdown versions of all pages are available by appending .md to any URL.

# Heatmap layer no zoom compensation (heatmap helper)

This example shows how to add a heatmap layer onto a map without adjusting the radius based on the zoom level. To achieve this, we utilize the heatmap layer helper. You can access the sample data by downloading the [US schools example data](../../assets/schools.geojson).

By disabling the `.zoomCompensation`, we ensure that the size of the data points is solely determined by their corresponding property, rather than being influenced by the zoom level.

This heatmap map approach is particularly suitable for visualizations that are either fixed at a certain zoom level or have a limited range of zoom levels.

### NPM module setup

```bash
npm install --save @maptiler/sdk
```

#### main.js

```js
import { Map, MapStyle, config, helpers } from '@maptiler/sdk';
import '@maptiler/sdk/dist/maptiler-sdk.css';

config.apiKey = 'YOUR_MAPTILER_API_KEY_HERE';
const map = new Map({
    container: 'map',
    zoom: 11.51,
    center: [-81.4158, 28.5213],
    style: MapStyle.DATAVIZ.LIGHT
});

map.on('load', async function () {
  await helpers.addHeatmap(map, {
    data: 'schools.geojson',
    property: "students",
    zoomCompensation: false,
    radius: [
      {propertyValue: 500, value: 20},
      {propertyValue: 6000, value: 200},
    ],
  });
});
```

#### index.html

```html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="robots" content="noindex">
  <title>Heatmap layer no zoom compensation (heatmap helper) | NPM example</title>
  <link rel="stylesheet" href="./style.css">
</head>
<body>
  <div id="map"></div>
  <script type="module" src="./main.js"></script>
</body>
</html>
```

#### style.css

```css
body {margin: 0; padding: 0;}
#map {position: absolute; top: 0; bottom: 0; width: 100%;}
```

### Basic JavaScript setup

```html
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Heatmap helper</title>
<script src="https://cdn.maptiler.com/maptiler-sdk-js/v4.2.0/maptiler-sdk.umd.min.js"></script>
<link href="https://cdn.maptiler.com/maptiler-sdk-js/v4.2.0/maptiler-sdk.css" rel="stylesheet" />
<style>
  body {margin: 0; padding: 0;}
  #map {position: absolute; top: 0; bottom: 0; width: 100%;}
</style>
</head>
<body>
<div id="map"></div>

<script>
    maptilersdk.config.apiKey = 'YOUR_MAPTILER_API_KEY_HERE';
    const map = new maptilersdk.Map({
        container: 'map',
        zoom: 11.51,
        center: [-81.4158, 28.5213],
        style: maptilersdk.MapStyle.DATAVIZ.LIGHT
    });

    map.on('load', async function () {
      await maptilersdk.helpers.addHeatmap(map, {
        data: 'schools.geojson',
        property: "students",
        zoomCompensation: false,
        radius: [
          {propertyValue: 500, value: 20},
          {propertyValue: 6000, value: 200},
        ],
      });
    });

</script>
</body>
</html>
```

## Related examples

### [Heatmap layer (heatmap helper)](https://docs.maptiler.com/sdk-js/examples/helper-heatmap-minimal/)

Examples

Quickly add a heatmap layer using the heatmap helper.

### [Create a heatmap layer](https://docs.maptiler.com/sdk-js/examples/heatmap-layer/)

Examples

Visualize point data frequency using a custom heatmap layer.

### [Heatmap layer min and max zoom (heatmap helper)](https://docs.maptiler.com/sdk-js/examples/helper-heatmap-min-max-zoom/)

Examples

Set minimum and maximum zoom levels for heatmap layers.

### [Point layer cluster (point helper)](https://docs.maptiler.com/sdk-js/examples/helper-point-cluster/)

Examples

Add clustered point layer using MapTiler point helper.
