Вернуться к списку

Как подключить данные в Leaflet (leaflet.js)

  • Закажите данные на интересующую Вас территорию в формате GeoJSON.

  • Дождитесь получения результата, скачайте и распакуйте архив с данными.

  • Выберите нужный слой, например Границы муниципальных районов (boundary-polygon-lvl6.geojson)

  • Чтобы подключить слой в Leaflet, нужно его захостить (положить туда, где он будут доступен по гиперссылке).

Код, описывающий простую карту, включающую слой муниципальных районов и подписей их названий, выглядит следующим образом:

<!DOCTYPE html>
<html>

  <head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>Show Data layer on the Leaflet</title>

    <link rel="stylesheet" href="https://unpkg.com/leaflet@1.7.1/dist/leaflet.css" />
    <script src="https://unpkg.com/leaflet@1.7.1/dist/leaflet.js"></script>
    <style>
      html,
      body,
      #map {
        width: 100%;
        height: 100%;
      }

    </style>
  </head>

  <body>
    <div id="map"></div>
    <script>
      var dataMap = L.map("map").fitBounds([
        [43.6956, 38.5235],
        [45.2362, 41.1877],
      ]);
      fetch(
        "https://raw.githubusercontent.com/rendrom/rendrom.github.io/master/static/boundary-polygon-lvl6.geojson"
      ).then(function(resp) {
        resp.json().then(function(geojson) {
          L.geoJSON(geojson, {
            onEachFeature: function(feature, layer) {
              const name = feature.properties.NAME;
              if (name) {
                layer.bindTooltip(feature.properties.NAME, {
                  permanent: true
                });
              }
            },
          }).addTo(dataMap);
        });
      });

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

Результат:

../_images/leaflet.png