---
title: "How to download a map screenshot as a PNG file (screenshot helper) | JavaScript maps SDK"
description: "Download map screenshot as PNG file using helper."
---

# How to download a map screenshot as a PNG file (screenshot helper)

This example shows how to download the current map view as a PNG file. The [screenshot helper](https://docs.maptiler.com/sdk-js/api/helpers/#screenshot) is the most convenient way to save map snapshots.

Getting a file directly is a nice option that can be useful to share some debugging context with colleagues, compare multiple styles, or share your creation on social media.

Click on the _Take screenshot_ button to download a image for the current map view

### 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,
    center: [0.66016, 42.62845],
    style: MapStyle.OUTDOOR
});

map.on('ready', () => {
  document.getElementById('screenshot').addEventListener('click', function () {
    helpers.takeScreenshot(map, {
      download: true,
      filename: "maptiler_map_screenshot.png"
    });
  });
});
```

#### index.html

```html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="robots" content="noindex">
  <title>How to download a map screenshot as a PNG file (screenshot helper) | NPM example</title>
  <link rel="stylesheet" href="./style.css">
</head>
<body>
  <div id="map"></div>
  <button id="screenshot">Download screenshot</button>
  <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%;}
#screenshot {
  display: block;
  position: relative;
  margin: 0px auto;
  width: 50%;
  height: 40px;
  padding: 10px;
  border: none;
  border-radius: 3px;
  font-size: 12px;
  text-align: center;
  color: #fff;
  background:#ee8a65;
  cursor: pointer;
}
```

### 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>Point 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%;}
  #screenshot {
    display: block;
    position: relative;
    margin: 0px auto;
    width: 50%;
    height: 40px;
    padding: 10px;
    border: none;
    border-radius: 3px;
    font-size: 12px;
    text-align: center;
    color: #fff;
    background:#ee8a65;
    cursor: pointer;
  }
</style>
</head>
<body>
<div id="map"></div>
<button id="screenshot">Download screenshot</button>

<script>
  maptilersdk.config.apiKey = 'YOUR_MAPTILER_API_KEY_HERE';
  const map = new maptilersdk.Map({
      container: 'map',
      zoom: 11,
      center: [0.66016, 42.62845],
      style: maptilersdk.MapStyle.OUTDOOR
  });

  map.on('ready', () => {
    document.getElementById('screenshot').addEventListener('click', function () {
      maptilersdk.helpers.takeScreenshot(map, {
        download: true,
        filename: "maptiler_map_screenshot.png"
      });
    });
  });
</script>
</body>
</html>
```

## Related examples

### [Take screenshot (screenshot helper)](https://docs.maptiler.com/sdk-js/examples/helper-screenshot/)

Examples

Capture map view as PNG blob using helper.

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

Examples

Quickly add a heatmap layer using the heatmap helper.

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

Examples

Add labeled point layer using MapTiler point helper.

### [Point layer scaled radius by property (point helper)](https://docs.maptiler.com/sdk-js/examples/helper-point-ramped-property/)

Examples

Scale point layer radius and color by property.
