마커 클릭시 오버레이가 열리는 것 까지는 구현했는데 닫히지가 않네요.
반복문 안에서 마커를 다중으로 생성하고 열리는 것도 되는데 오버레이 한개만 닫히네요.
뭐가 문제일까요?
<script>
var container1 = document
.getElementById('map1');
var options1 = {
center: new kakao.maps.LatLng(
37.9059392, 128.8271543),
level: 11
};
var map = new kakao.maps.Map(container1,
options1);
var changeMaptype = kakao.maps.MapTypeId.SKYVIEW;
map.addOverlayMapTypeId(changeMaptype);
var result = [];
var parser = new DOMParser();
var jsArray = [];
jsArray[0] = '67207';
jsArray[1] = '05';
jsArray[2] = '수동신고';
jsArray[3] = '03';
jsArray[4] = '진화완료';
jsArray[5] = '강원도 인제군 인제읍 덕산리 산 23';
jsArray[6] = '20191211';
jsArray[7] = '162642';
jsArray[8] = '128.1892123425546';
jsArray[9] = '38.09493609087529';
result[0] = jsArray;
jsArray = [];
jsArray[0] = '67208';
jsArray[1] = '05';
jsArray[2] = '수동신고';
jsArray[3] = '03';
jsArray[4] = '진화중';
jsArray[5] = '강원도 인제군 인제읍 덕산리 산 50';
jsArray[6] = '20191211';
jsArray[7] = '162642';
jsArray[8] = '127.1892123425546';
jsArray[9] = '37.09493609087529';
result[1] = jsArray;
for (var i = 0; i < result.length; i++) {
var coords = new daum.maps.LatLng(result[i][9], result[i][8]);
var marker = new daum.maps.Marker({
map: map,
position: coords,
clickale: true
});
var date = result[i][6].substring(0, 4) + '.' + result[i][6].substring(4, 6) + '.' + result[i][6].substring(6, 8);
var time = result[i][7].substring(0, 2) + ':' + result[i][7].substring(2, 4) + ':' + result[i][7].substring(4, 7);
var content = '<div class="popup">' +
'<div class="popup__inner">' +
'<div class="popup__header">상황정보<div class="popup__close" onclick="closeOverlay()">X</div></div>' +
'<div class="popup__body">' +
'<div class="popup__time">' + date + ' ' + time + '</div>' +
'<div class="popup__text">' + result[i][5] + '</div>' +
'<div class="popup__info">' +
'<div class="popup__label">진행상태</div>' +
'<div class="popup__content">' +
result[i][4] +
'</div>' +
'</div>' +
'</div>' +
'</div>' +
'</div>';
var overlay = new kakao.maps.CustomOverlay({
position: coords
});
overlay.setContent(content);
kakao.maps.event.addListener(marker, 'click', displayOverlay(map, overlay));
function closeOverlay() {
overlay.setMap(null);
}
}
function displayOverlay(map, overlay) {
return function() {
overlay.setMap(map);
}
}
</script>