2014-11-27 4 views
2

나는 그 질문이 모두 다라고 생각합니다. 전단을 사용하고 있습니다. 지도 위에 세 개의 레이어를로드하고 있습니다.특정 전단지 레이어의 클릭을 캡처하는 방법

그러나지도를 클릭 한 후 어떤 레이어를 클릭했는지 알 수있는 방법을 찾을 수 없습니다. 기본적으로 레이어에 설정된 이벤트 핸들러가 없기 때문에지도에만 표시됩니다.

또한 피쳐 그룹에 레이어를 추가하고이 피쳐 그룹에 클릭 이벤트를 추가하려고했습니다. 그러나지도를 클릭해도 이벤트/응답이 발생하지는 않습니다.

addWaterNameLayers : 함수() {

var knownWaters = L.tileLayer.wms(getGeoServer('wms', geoEnviroment), { 
     layers: this.wmsLayers.known.name, 
     format: 'image/png', 
     opacity: 0, 
     styles: 'cursor: pointer', 
     transparent: true, 
     attribution: "" 
    });//.addTo(this.mapInfo); 

    var unknownWaters = L.tileLayer.wms(getGeoServer('wms', geoEnviroment), { 
     layers: this.wmsLayers.unknown.name, 
     format: 'image/png', 
     opacity: 0.3, 
     styles: '', 
     transparent: true, 
     attribution: "" 
    }); 

    L.FeatureGroup(knownWaters, unknownWaters).on('click', function(event) { 
     console.log('click'); 
     this.handleClick(event); 
    },this); 

    //this part will work on mapclick, so on featuregroup it should work? 
    //when clicking on the map 
    /* 
    this.mapInfo.on('click', function(event) { 
     this.handleClick(event); 
    }, this); 
    */ 

}, 

코드에 당신이 ...뿐만 아니라 테지도 하나를 클릭 이벤트를 볼 수 있습니다 위의

내가 featureGroup에 무슨 짓을 공장. 기능 그룹에있는 은 그렇지 않습니다. 나는이에 featureGroup에 대한 코드를 변경할 때

또한 작동하지 않습니다 중 하나

var featGr = L.FeatureGroup(knownWaters, unknownWaters).on('click', function(event) { 
     this.handleClick(event); 
    },this); 


    var featGr = L.FeatureGroup(knownWaters, unknownWaters); 
    featGr.on('click', function(event) { 
     this.handleClick(event); 
    },this); 

L.FeatureGroup에 레이어를 넣어

답변

1

... 또한 아무것도하지 않는 것 레이어에 featureGroup 추가 . L.FeatureGroup은 이벤트를 추가하는 L.LayerGroup의 확장입니다. 그것은 또한 clickevent를 지원하므로 정확히 당신이 찾고있는 것입니다. 설명서를 확인하십시오 : http://leafletjs.com/reference.html#featuregroup

+0

thnx를 클릭 요소는하지만 기능 그룹에 넣어 않았다, 그러나 나는 캡처 할 수 없습니다 딸깍 하는 소리. 나는 단지 다시 시도 할 것입니다. – BonifatiusK

+3

나는 당신이 (wms) tilelayers에 대해 말하고 있다는 것을 깨닫지 못했습니다. 타일 ​​레이어가 겹치는 이미지이기 때문에 이것은 당연히 타일 레이어와 함께 작동하지 않습니다. 맨 위에있는 현재 보이는 레이어보다 다른 결과를 얻지 못할 것입니다. – iH8

+0

나는 그것을 두려워했다;) 그래서 레이어를 반복하는 것 외에 할 일은 없을까? – BonifatiusK

0

event.layer은 계층 데이터

event.originalEvent.path [0] 당신이

관련 문제