drawing manger의 put함수를 통해 polygon을 그렸을 때 그려진 polygon에 listener를 붙이고 싶습니다.
시도한 방법은
-
drawend: put이 그린 polygon은 drawend evnt에 걸리지 않는 듯 합니다. (실패)
-
manager.getOverlay 를 통해 지도에 그러진 obejct를 받아서 listener 붙이기 (실패)
var testobject = manager.getOverlays([kakao.maps.drawing.OverlayType.POLYGON]);
var testarea = testobject.getArea();
console.log(testarea);
kakao.maps.event.addListener(testobject, ‘click’, function(mouseEvent){
console.log(‘listener is added’);
opentest();
});
이렇게 해봤는데 testarea 가 code error라고 나옵니다. 아마 getOverlay의 return값을 제가 잘 못 이해하고 있는듯 합니다.
manager.getOverlays([kakao.maps.drawing.OverlayType.POLYGON]);
의 리턴값은
{ polygon: Array(..)}
이기 때문에 반복문을 돌며 각 polygon에 이벤트를 걸어주어야 합니다.
아래 코드도 참고해주세요.
// 위에 작성한 옵션으로 Drawing Manager를 생성합니다
var manager = new kakao.maps.drawing.DrawingManager(options);
var path = [
new kakao.maps.LatLng(33.452344169439975, 126.56878163224233),
new kakao.maps.LatLng(33.452739313807456, 126.5709308145358),
new kakao.maps.LatLng(33.45178067090639, 126.5726886938753)
];
// 그리기 관리자에 폴리곤을 추가한다
manager.put(kakao.maps.drawing.OverlayType.POLYGON, path);
// 지도의 그린 요소 중 폴리곤 객체를 반환합니다. ex){polygon:[...,...]}
var overlays = manager.getOverlays([kakao.maps.drawing.OverlayType.POLYGON]);
// 폴리곤 배열값을 담습니다.
var polygons = overlays.polygon;
// polygon에 클릭 이벤트를 줍니다.
for(var i=0; i<polygons.length; i++){
var polygon = polygons[i];
kakao.maps.event.addListener(polygon, 'click', function(mouseEvent){
console.log('listener is added');
});
}
1개의 좋아요