별도의 geoJSON 파일에서로드하는 세 개의 레이어가있는 리플렛 맵이 있습니다. 나는 각각에 대해 latlong 좌표와 레이블을 가진 세 개의 추가 파일을 가지고 있습니다.전단지 : 어떤 레이어가 활성화되어 있는지에 따라 라벨을 전환하십시오.
저는 세 개의 레이어를 전환하기 위해 basemap control.layers를 사용하고 있으며 어떤 기본 맵 레이어가 활성 상태인지에 따라 레이블 레이어를 활성화하는 오버레이 레이어 확인란을 사용하고 싶습니다.
var basemaps= {
"layer1": layer1,
"layer2": layer 2,
"layer3": layer 3
};
내 레이블을 함께 유지하기 위해 layerGroups를 사용하고 있습니다. ActiveLayer 플러그인을 사용하여 현재 활성화 된 baselayer를 선택하는 데 도움을 주려고했지만 항상 무언가 이상한 것으로 보입니다.
나는 자바 스크립트에 익숙하지 않으며 내가 배우는 것처럼 학습한다.
내 제어 코드의 나머지 :
var picker = L.control.activeLayers(basemaps, showlabels {collapsed:false}).addTo(map);
if (picker.getActiveBaseLayer() == "layer1")
{activelabel = label1};
if (picker.getActiveBaseLayer() == "layer2")
{activelabel = label2};
if (picker.getActiveBaseLayer() == "layer2")
{activelabel = label3};
var showlabels = {
"labels": activelabel
};
이 작업을 수행 할 수있는 더 나은 방법이 있나요? 내 레이어에 라디오 버튼이 있고 라디오 버튼이 선택되었는지에 따라 라벨이 바뀌는 하나의 체크 박스가 필요합니다.
편집
이 코드는 baselayerchange을 발견
map.on('baselayerchange', function(a) {
if (picker.getActiveBaseLayer().name == "layer1")
{activelabel = label1};
if (picker.getActiveBaseLayer().name == "layer2")
{activelabel = label2};
if (picker.getActiveBaseLayer().name == "layer3")
{activelabel = labels3};
});
내가 CONSOLE.LOG을 할 때 나에게 활성층을 이야기하지만, 어떤 이유로 그 밤은 업데이트, 뭔가를 할 것으로 보인다
어떤 레이블이 보여지고 있는지.
환상적입니다. 정말 고맙습니다! – threkar