Change the basemap worldview

Use the worldview parameter of Esri Leaflet Vector to change the political worldview of the basemap layer. A list of supported basemap enumerations can be found on the basemap styles service page.

Use dark colors for code blocksCopy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<html>
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no" />
    <title>Esri Leaflet: Change the worldview</title>

    <link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" crossorigin="" />
    <script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js" crossorigin=""></script>

    <!-- Load Esri Leaflet from CDN -->
    <script src="https://unpkg.com/esri-leaflet@3.0.12/dist/esri-leaflet.js"></script>

    <!-- Load Esri Leaflet Vector from CDN -->
    <script src="https://unpkg.com/esri-leaflet-vector@4.2.5/dist/esri-leaflet-vector.js" crossorigin=""></script>
    <style>
      body {
        margin: 0;
        padding: 0;
      }
      #map {
        position: absolute;
        top: 0;
        bottom: 0;
        right: 0;
        left: 0;
        font-family: Arial, Helvetica, sans-serif;
        font-size: 14px;
        color: #323232;

      }
    </style>
  </head>
  <body>
    <div id="map"></div>
    <script type="module">
      const map = L.map("map", {
        minZoom: 2
      }).setView([31, -7.09], 4); // Morocco

      const accessToken = "YOUR_ACCESS_TOKEN";

      const basemapStyle = "arcgis/light-gray";

      const getLayer = code => {
        return L.esri.Vector.vectorBasemapLayer(basemapStyle, {
            token: accessToken,
            version: 2,
            worldview:code
        })
      }

      // Retrieve list of supported worldviews from /self url
      L.esri.get('https://basemapstyles-api.arcgis.com/arcgis/rest/services/styles/v2/styles/self',{}, (error,response)=>{
        // Add leaflet control to map
        const worldviewOptions = Object.fromEntries(response.worldviews.map(worldview => [worldview.name,getLayer(worldview.code)]));

        worldviewOptions['Default'] = L.esri.Vector.vectorBasemapLayer(basemapStyle, {token: accessToken, version: 2}).addTo(map);

        L.control.layers(worldviewOptions, null, { collapsed: false }).addTo(map);
      })
    </script>

  </body>
</html>

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.