이렇게 값을 뽑는데 clusterMarkers에 찍힌것은 클러스터 전제 값을 뽑은거고 cluster.getMarkers()이 값은 클리한 클러스터 값인데 안에 내용보면 content값이 없어서 클릭한 클러스터 안에 텍스트들을 못불러 옵니다. 그래서 비교해서 하려고 했느데 2개나 4개 짜리 값은 잘오는데 많은 데이터들이 있으면 중복값으로 엄청 나오는데 어떻게 해야 클릭한 클러스터 마커 내용들을 가져올수 있을까요? for문이 문제인거 같은데 어찌 수정해야할지…막막합니다.
var markers = [];
var clusterMarkers = [];
for (var i = 0; i < positions.length; i++) {
// 마커를 생성합니다
var marker = new kakao.maps.Marker({
// map: map, // 마커를 표시할 지도
position: positions[i].latlng, // 마커의 위치
});
// 마커에 표시할 인포윈도우를 생성합니다
var infowindow = new kakao.maps.InfoWindow({
content: positions[i].content // 인포윈도우에 표시할 내용
});
var clusterMarker = new kakao.maps.Marker({
// map: map, // 마커를 표시할 지도
position: clusterPositions[i].latlng, // 마커의 위치
});
// 마커에 표시할 인포윈도우를 생성합니다
var clusterInfowindow = new kakao.maps.InfoWindow({
position: positions[i].latlng,
content: positions[i].content // 인포윈도우에 표시할 내용
});
kakao.maps.event.addListener(marker, 'mouseover', makeOverListener(map, marker, infowindow));
kakao.maps.event.addListener(marker, 'mouseout', makeOutListener(infowindow));
markers.push(marker);
clusterMarkers.push(clusterInfowindow);
}
clusterer.addMarkers(markers);
kakao.maps.event.addListener(clusterer, 'clusterclick', function (cluster) {
console.log("clusterMarkers : ", clusterMarkers);
console.log("cluster.getMarkers() : ", cluster.getMarkers());
document.getElementById("htmlList").innerHTML = '';
let schHtml = '';
clusterMarkers.forEach(infowindow => {
cluster.getMarkers().forEach(function (v, k) {
var lng = v.getPosition().getLng();
var lat = v.getPosition().getLat();
if (infowindow.getPosition().getLat() == lat && infowindow.getPosition().getLng() == lng) {
schHtml += infowindow.getContent();
}
})
});
document.getElementById("htmlList").innerHTML = schHtml;
});