Javascript-форум (https://javascript.ru/forum/)
-   Библиотеки/Тулкиты/Фреймворки (https://javascript.ru/forum/library-toolkit-framework/)
-   -   Удаление слоя в leaflet (https://javascript.ru/forum/library-toolkit-framework/83233-udalenie-sloya-v-leaflet.html)

mishgan 20.10.2021 17:22

Удаление слоя в leaflet
 
Написал функцию для кнопки для включения/выключения слоя на карте. Функция добавляет слой на карту но не хочет его убирать. Не работает строчка map.removeLayer(arrOpenLayer[sloy]); Подскажите что я делаю не так.
var arrOpenLayer = new Array();

function showLayerBtn(sloy) {

  if (arrOpenLayer[sloy]==undefined) {
	   fetch(sloy)
                .then(res => res.text())
                .then(kmltext => {
                    const parser = new DOMParser();
                    const kml = parser.parseFromString(kmltext, 'text/xml');
                    const track = new L.KML(kml);
                    arrOpenLayer[sloy] = map.addLayer(track);
      		    const bounds = track.getBounds();
		    map.fitBounds(bounds);
                });
  } else {
	 map.removeLayer(arrOpenLayer[sloy]); 
	 arrOpenLayer[sloy]=undefined;
  }

destus 21.10.2021 12:05

mishgan,
map.addLayer тебе вернет map, а не добавленный слой (https://leafletjs.com/reference-1.7.1.html#map-addlayer), поэтому на 12 строке ты в массив добавляешь инстанс карты.
const track = new L.KML(kml);
arrOpenLayer[sloy] = track;
map.addLayer(track);


Часовой пояс GMT +3, время: 22:44.