두가지 방법이 있습니다.
-
CustomOverlay를 전역으로 하나만 만드시고
클릭할 때마다 setPosition()로 위치를, setContent()로 내용을 바꿔치는 방식 -
전역 변수를 하나 두시고
클릭할 때마다 이 변수에 할당되어 있는 CustomOverlay를 setMap(null) 하고 현재 클릭된 CustomOverlay를 해당 변수에 재할당하여 계속하여 이 전 CustomOverlay를 지우는 방식
무엇을 구현하시느냐에 따라 사용해야 할 방법이 다른데
뭐… 간단하게 두 번째껄로 간다고 하면
// global variable
var clickedOverlay = null;
geocoder.addressSearch(addr, function(result, status) {
/*
...
...
...
*/
var CustomOverlay = new daum.maps.CustomOverlay({
//content: content,
map: map,
position: marker.getPosition()
});
/*
...
...
...
*/
daum.maps.event.addListener(marker, 'click', function() {
if (clickedOverlay) {
clickedOverlay.setMap(null);
}
CustomOverlay.setMap(map);
clickedOverlay = CustomOverlay;
});
/*
...
...
...
*/
});