---
title: "Render world copies | JavaScript maps SDK"
description: "Toggle rendering multiple copies of the world."
---

> 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.

# Render world copies

Toggle between rendering a single world and multiple copies of the world using [`setRenderWorldCopies`](https://docs.maptiler.com/sdk-js/api/map/#map#setrenderworldcopies). If `true`, multiple copies of the world will be rendered side by side beyond -180 and 180 degrees longitude.

### NPM module setup

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

#### main.js

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

config.apiKey = 'YOUR_MAPTILER_API_KEY_HERE';
const map = new Map({
    container: 'map', // container id
    style: MapStyle.STREETS,
    center: [179, 0], // starting position [lng, lat]
    zoom: 0.01 // starting zoom
});

const renderOptions = document.getElementById('menu');
const inputs = renderOptions.getElementsByTagName('input');

function switchRenderOption(option) {
    const status = option.target.id;
    map.setRenderWorldCopies(status === 'true');
}

for (let i = 0; i < inputs.length; i++) {
    inputs[i].onclick = switchRenderOption;
}
```

#### index.html

```html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="robots" content="noindex">
  <title>Render world copies | NPM example</title>
  <link rel="stylesheet" href="./style.css">
</head>
<body>
  <style>
  #menu {
      position: absolute;
      background: #fff;
      padding: 10px;
      font-family: 'Open Sans', sans-serif;
  }
  </style>

  <div id="map"></div>
  <div id="menu">
  <div>Set <code>renderWorldCopies</code> to:</div>
  <div>
      <input type="radio" id="true" name="rtoggle" value="true" checked />
      <label for="true">true</label>
  </div>
  <div>
      <input type="radio" id="false" name="rtoggle" value="false" />
      <label for="false">false</label>
  </div>
  </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>Render world copies</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%;
    }

    #menu {
      position: absolute;
      background: #fff;
      padding: 10px;
      font-family: 'Open Sans', sans-serif;
    }
  </style>
</head>

<body>
  <div id="map"></div>
  <div id="menu">
    <div>Set <code>renderWorldCopies</code> to:</div>
    <div>
      <input type="radio" id="true" name="rtoggle" value="true" checked />
      <label for="true">true</label>
    </div>
    <div>
      <input type="radio" id="false" name="rtoggle" value="false" />
      <label for="false">false</label>
    </div>
  </div>

  <script>
    maptilersdk.config.apiKey = 'YOUR_MAPTILER_API_KEY_HERE';
    const map = new maptilersdk.Map({
      container: 'map', // container id
      style: maptilersdk.MapStyle.STREETS,
      center: [179, 0], // starting position [lng, lat]
      zoom: 0.01 // starting zoom
    });

    const renderOptions = document.getElementById('menu');
    const inputs = renderOptions.getElementsByTagName('input');

    function switchRenderOption(option) {
      const status = option.target.id;
      map.setRenderWorldCopies(status === 'true');
    }

    for (let i = 0; i < inputs.length; i++) {
      inputs[i].onclick = switchRenderOption;
    }
  </script>
</body>

</html>
```

## Related examples

### [Display line that crosses 180th meridian](https://docs.maptiler.com/sdk-js/examples/line-across-180th-meridian/)

Examples

Draw a line across the 180th meridian using a GeoJSON source.

### [Restrict map panning to an area](https://docs.maptiler.com/sdk-js/examples/restrict-bounds/)

Examples

Prevent map panning by setting maximum bounds.

### [Center map by visitor’s country IP](https://docs.maptiler.com/sdk-js/examples/ip-country-map/)

Tutorials

This tutorial shows how to center map based on the visitor’s country bounds using the MapTiler Geolocation API.
