$.ajax({
url : "${pageContext.request.contextPath}/search/getAddress.do",
data : {
keyword : keyword,
place : place,
regardlessArea : regardlessArea,
category : category
},
success : function(listData) {
var j = 0;
var data = new Object();
var positions = new Array();
var geocoder = new daum.maps.services.Geocoder();
// 주소로 좌표를 검색합니다
for (var i = 0; i < listData.length ; i++) {
geocoder.addressSearch(listData[i].groupAddress, function(result, status) {
// 정상적으로 검색이 완료됐으면
if (status === daum.maps.services.Status.OK) {
positions.push({
"content" : '<div>카카오</div>',
"lat" : result[0].y,
"lng" : result[0].x
});
j++;
// 마커 이미지 변경
/* var imageSrc = '${pageContext.request.contextPath }/resources/images/search/marker.png', // 마커이미지의 주소입니다
imageSize = new daum.maps.Size(40, 40), // 마커이미지의 크기입니다
imageOption = {offset: new daum.maps.Point(20, 38)}; // 마커이미지의 옵션입니다. 마커의 좌표와 일치시킬 이미지 안에서의 좌표를 설정합니다.
var markerImage = new daum.maps.MarkerImage(imageSrc, imageSize, imageOption); */
// 마커 생성 및 클러스터러에 마커 추가
if(j == listData.length) {
data = { positions };
var markers = data.positions.map(function(position) {
return new daum.maps.Marker({
position : new daum.maps.LatLng(position.lat, position.lng),
//image : markerImage
});
});
for(var k = 0; k < positions.length; k++) {
var infowindow = new daum.maps.InfoWindow({
content: data.positions[k].content // 인포윈도우에 표시할 내용
});
console.log(infowindow);
daum.maps.event.addListener(markers, 'mouseover', makeOverListener(map, markers, infowindow)); // 인포윈도우 에러 부분
daum.maps.event.addListener(markers, 'mouseout', makeOutListener(infowindow));
}
// 인포윈도우를 표시하는 클로저를 만드는 함수입니다
function makeOverListener(map, markers, infowindow) {
return function() {
infowindow.open(map, markers);
};
}
// 인포윈도우를 닫는 클로저를 만드는 함수입니다
function makeOutListener(infowindow) {
return function() {
infowindow.close();
};
}
clusterer.addMarkers(markers);
}
}
});
}
// 마커 클러스터러에 클릭이벤트를 등록합니다
// 마커 클러스터러를 생성할 때 disableClickZoom을 true로 설정하지 않은 경우
// 이벤트 헨들러로 cluster 객체가 넘어오지 않을 수도 있습니다
daum.maps.event.addListener(clusterer, 'clusterclick', function(cluster) {
// 현재 지도 레벨에서 1레벨 확대한 레벨
var level = map.getLevel() - 1;
// 지도를 클릭된 클러스터의 마커의 위치를 기준으로 확대합니다
map.setLevel(level, {
anchor : cluster.getCenter()
});
});
}
});
이렇게 마커랑 클러스터러 생성했는데 인포윈도우 띄우고 싶어서 코드 짜봤는데
Uncaught TypeError: a.addListener is not a function at Object.addListener 이 에러가 발생하네요 해결 방법좀 알려주세요