우선… clusterclick 이벤트 핸들러에 작성한 코드를 보면
구현하고자 하는게 클러스터러 마커가 아닌 각각 개별마커에 이벤트를 걸어도 무방한건가요?
그렇다면 클러스터러가 클릭되었을때가 아닌 'freezeloc.do’에서 데이터를 가져오는 $.get 콜백함수 내에서
마커들을 만들어 클러스터러에 넣는 부분위에 마커에 클릭이벤트를 추가하는 구문울 추가하시면 됩니다.
clusterclick 작성한 코드에도 문제가 있는데
우선 ‘클러스터 클릭 이벤트’ 라는 주석처럼 보이는 문장이 주석처리 되어있지 않고
pk라는 배열에 LatLng 를 스트링으로 넣고 나중에 마커의 위치로 사용하는데, 마커의 위치로 사용할 수 없습니다.
아래와 같이 스트링값이 아닌 LatLng 객체 인스턴스를 만들어 배열에 넣으셔야하고
pk.push(new daum.maps.LatLng(mk[i].getPosition().getLat(), mk[i].getPosition().getLng()));
var mk = cluster.getMarkers();
for(var i=0; i < mk.length;i++){
var marker = new daum.maps.Marker({
position: new daum.maps.LatLng(mk[i].getPosition().getLat(), mk[i].getPosition().getLng())
});
제가
“클러스터러가 클릭되었을때가 아닌 'freezeloc.do’에서 데이터를 가져오는 $.get 콜백함수 내에서
마커들을 만들어 클러스터러에 넣는 부분위에 마커에 클릭이벤트를 추가하는 구문을 추가하시면 됩니다.” 라고 말씀 드렸었는데
clusterer 클릭 이벤트에 마커 이벤트를 등록하셨네요.
제가 이해하기로는 클러스터링 되다가 개별마크가 보이게 되면 그 마커에 클릭 이벤트를 넣고싶으신거라면
말씀드린대로 마커를 ajax로 얻어오는 get 콜백내에서 개별마커에 클릭이벤트를 등록하시면 됩니다. 어차피 클러스터러 객체에 마커객체를 생성해서 넣기때문에 마커객체의 참조를 가져가게 되는거니까 이벤트는 유효합니다. 아래 글을 참고해주세요 https://devtalk.kakao.com/t/topic/48917