2017-05-22 8 views
1

사용자가 레이어 제어판에서 전환 할 수있는 두 개의 레이어 그룹이 있습니다. 지금까지 문제가 없습니다.Leaflet.js - 선택된 오버레이 찾기

현재 선택된 오버레이 (0 == a 또는 1 == b)를 어떻게 찾을 수 있습니까? 2 분마다 레이어 그룹을 페인트하는 함수를 호출하고 (window.setTimeout ("myFunction()", 120 * 1000);) 선택한 레이어 그룹 만 "다시 그리기"를 원합니다.

var a = new L.LayerGroup(); 
var b = new L.LayerGroup(); 

var overlays = { 
     "Option A": a, 
     "Option B": b 
    }; 

L.control.layers(overlays).addTo(map); 

답변

2

여러 가지 방법이 있습니다 :

이 내가지도에 두 개의 오버레이에 대한 컨트롤을 추가하는 방법입니다. 레이어를 추가하거나 제거하는지도 이벤트를들을 수 있습니다. 레이어 컨트롤 패널에 이벤트 핸들러를 더 추가 할 수 있습니다.

내 개인적인 선택은 부울을 반환하며 자체 설명하는 map.hasLayer(a)으로 전화하는 것입니다. hasLayer() documentation을 참조하십시오.

+0

감사합니다. hasLayer() 솔루션에 대한 시각 장애가 있습니다. – voland