Медленно подгружаются полигоны geoJSON на карту leafletjs

есть карта сделанная на leafletjs, задача состояла в том, чтобы выделить определенные регионы. Выделение я сделал используя полигоны которые получаю из geoJSON. Одной из значимых проблем в моей реализации оказалась медленная скорость подгрузки полигонов, а значит на карте они отображаются только через несколько секунд (каждая). Как сделать более быструю подгрузку полигонов?
Выполните код чтобы "прочувствовать" все самим :)

let map = new L.Map('map', {
  layers: new L.TileLayer('https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}'),
  center: new L.LatLng(33.309731, -35.976059),
  zoom: 1.5,
  minZoom: 1.5,
  maxZoom: 2
});

function doFetch(url, settings) {
  fetch(url)
    .then(function(response) {
      return response.json();
    })
    .then(function(json) {
      json.features = json.features.filter(f => f.geometry.type !== "Point");
      L.geoJSON(json, settings).addTo(map);
    });
}

function LowCoV(geoJsonData) {
  let polygonSettings = {
    fillColor: "#e00",
    color: "#f00",
    opacity: 1,
    weight: 0.5,
    fillOpacity: 0.2 // LOW
  }
  doFetch(geoJsonData, polygonSettings);

}

function MiddleCoV(geoJsonData) {
  let polygonSettings = {
    fillColor: "#e00",
    color: "#f00",
    opacity: 1,
    weight: 0.5,
    fillOpacity: 0.5 // MIDDLE
  }

  doFetch(geoJsonData, polygonSettings);
}

function HightCoV(geoJsonData) {
  let polygonSettings = {
    fillColor: "#e00",
    color: "#f00",
    opacity: 1,
    weight: 0.5,
    fillOpacity: 0.8 // HIGHT
  }

  doFetch(geoJsonData, polygonSettings);
}

LowCoV('https://nominatim.openstreetmap.org/search.php?q=Russia&polygon_geojson=1&format=geojson'); // Russia

LowCoV('https://nominatim.openstreetmap.org/search.php?q=Canada&polygon_geojson=1&format=geojson'); // Canada
LowCoV('https://nominatim.openstreetmap.org/search.php?q=Spain&polygon_geojson=1&format=geojson'); // Spain
LowCoV('https://nominatim.openstreetmap.org/search.php?q=France&polygon_geojson=1&format=geojson'); // France
LowCoV('https://nominatim.openstreetmap.org/search.php?q=Italy&polygon_geojson=1&format=geojson'); // Italy
LowCoV('https://nominatim.openstreetmap.org/search.php?q=India&polygon_geojson=1&format=geojson'); // India
LowCoV('https://nominatim.openstreetmap.org/search.php?q=Germany&polygon_geojson=1&format=geojson'); // Germany

MiddleCoV('https://nominatim.openstreetmap.org/search.php?q=Japan&polygon_geojson=1&format=geojson') // Japan
MiddleCoV('https://nominatim.openstreetmap.org/search.php?q=Australia&polygon_geojson=1&format=geojson'); // Australia
MiddleCoV('https://nominatim.openstreetmap.org/search.php?q=USA&polygon_geojson=1&format=geojson'); // USA
MiddleCov('https://nominatim.openstreetmap.org/search.php?q=Alaska&polygon_geojson=1&format=geojson'); // Alaska
body {
  margin: 0;
  overflow: hidden;
}

#map {
  position: absolute;
  width: 100%;
  height: 100%;
}
<link rel="stylesheet" href="stylesheet.css">
<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css" />
<script src="https://unpkg.com/[email protected]/dist/leaflet.js"></script>
<div id="map"></div>
<script src="main.js"></script>



Ссылка на codepen.io


Ответы (1 шт):

Автор решения: MidNightElf

Слабая скорость запроса объяснялась тем что, эти запросы обрабатывались на волантерских серверах с маленькой мощностью и было ограничение 1 запрос в секунду. Nominatim usage. Решением было скачивание страниц с полигонами и обращения к ним локально

→ Ссылка