대략적인 구조로만 보여드리면 이렇게 되어있습니다.
지도보기 클릭 시 searchArray를 반복문 돌려 마커를 찍습니다 같은 이름으로 선언된 markerTracker를 계속써서 stop시 죽지 않는걸까요…?
<script>
//여기 영역에 MarkerTracker() function 있습니다.
$(function(){
//선언
var mapContainer = document.getElementById('map'), // 지도를 표시할 div
mapOption = {
center: new kakao.maps.LatLng(33.450701, 126.570667), // 지도의 중심좌표
level: 6 // 지도의 확대 레벨
};
var apimap = new kakao.maps.Map(mapContainer, mapOption);
var marker = new kakao.maps.Marker();
var infowindow = new kakao.maps.InfoWindow();
var markerTracker = new MarkerTracker(apimap, marker);
function addMarker(position, normalOrigin, overOrigin, clickOrigin, info) {
//여기서 마커생성, 인포윈도우, 마커addListener 등을 처리
markerTracker = new MarkerTracker(apimap, marker);
markerTracker.run();
}
$(".mapBtn").click(function(){
if($(this).hasClass('hide')){
//지도접기클릭할때
MarkerTracker.stop();
}else{
//지도보기클릭할때
//searchArray 마커배열리스트로 마커찍기
searchArray.forEach(function(value,index){
searchAddr = value.searchAddr;
// 주소-좌표 변환 객체를 생성합니다
var geocoder = new kakao.maps.services.Geocoder();
// 주소로 좌표를 검색합니다
geocoder.addressSearch(searchAddr, function(result, status) {
// 정상적으로 검색이 완료됐으면
if (status === kakao.maps.services.Status.OK) {
var coords = new kakao.maps.LatLng(result[0].y, result[0].x);
// 마커를 생성하고 지도위에 표시합니다
addMarker(coords, normalOrigin, overOrigin, clickOrigin, value.H_name);
}
});
});
}
});
});
</script>