Ajax 검색 결과가 달라질 때 다중 마커 삭제 방법

getData() 함수 밖에

var markers = [];
var overlays = [];

변수를 선언해 주시고

done 콜백 시작하자마자

.done(function (data) {

    markers.forEach(function (marker) { marker.setMap(null); });
    markers.length = 0 // 마커 배열 초기화
    overlays.forEach(function (overlay) { overlay.setMap(null); });
    overlays.length = 0 // 오버레이 배열 초기화

    // 이하 생략
})

이후, geocoder의 addressSearch 콜백에서 마커를 만들 때마다

var marker = new daum.maps.Marker({
    map: map,
    position: coords
});
markers.push(marker);

// 중략

var customOverlay = new daum.maps.CustomOverlay({
    map: map,
    zIndex: 3,
    position: marker.getPosition()
});
overlays.push(customOverlay);

// 이하 생략

해주시면 됩니다.

showMarkers() 함수와 호출부는 지워주세요.
closeOverlay() 도 안쓰는것 같은데 지워주세요.

1개의 좋아요