검색된 위치의 마커를 검색 시에 띄워주고 그후에 다른 위치를 클릭시 이전 마커를 지우고 싶은데
marker.setVisible(false)
을 어떤곳에 넣어야하는지 혹은 어떤 예외처리를 넣어야하는지 아시는 분 있으실까요
코드는 아래 첨부합니다.
var ps = new daum.maps.services.Places();
//마커를 클릭하면 장소명을 표출할 인포윈도우 입니다
var infowindow = new daum.maps.InfoWindow({
zIndex : 1
});
var container = document.getElementById('map'); //지도를 담을 영역의 DOM 레퍼런스
var options = { //지도를 생성할 때 필요한 기본 옵션
center : new daum.maps.LatLng(37.55814, 127.04990), //지도의 중심좌표(한양여대)
level : 3
//지도의 레벨(확대, 축소 정도)
};
//지도를 생성합니다
var map = new daum.maps.Map(container, options);
//장소 검색 객체를 생성합니다. 키워드로 장소를 검색합니다.
function searchLocation() {
var loc = $("#searchLoc").val();
ps.keywordSearch(loc, placesSearchCB);
}
// 키워드 검색 완료 시 호출되는 콜백함수 입니다
function placesSearchCB(data, status, pagination) {
if (status === daum.maps.services.Status.OK) {
// 검색된 장소 위치를 기준으로 지도 범위를 재설정하기위해
// LatLngBounds 객체에 좌표를 추가합니다
var bounds = new daum.maps.LatLngBounds();
for (var i = 0; i < data.length; i++) {
displayMarker(data[i]);
bounds.extend(new daum.maps.LatLng(data[i].y, data[i].x)); //위도, 경도
}
// 검색된 장소 위치를 기준으로 지도 범위를 재설정합니다
map.setBounds(bounds);
}
}
// 지도에 마커를 표시하는 함수입니다
function displayMarker(place) {
// 마커를 생성하고 지도에 표시합니다
var marker = new daum.maps.Marker({
map : map,
position : new daum.maps.LatLng(place.y, place.x)
//위도, 경도
});
//지도에 마커를 표시합니다
marker.setMap(map);
// 마커에 클릭이벤트를 등록합니다
daum.maps.event.addListener(marker, 'click', function() {
// 마커를 클릭하면 장소명이 인포윈도우에 표출됩니다
infowindow.setContent('<div style="padding:5px;font-size:12px;">'
+ place.place_name + '</div>');
infowindow.open(map, marker);
});
}
//지도를 클릭한 위치에 표출할 마커입니다
var marker = new daum.maps.Marker({
// 지도 중심좌표에 마커를 생성합니다
position : map.getCenter()
});
//지도에 마커를 표시합니다
marker.setMap(map);
//지도에 클릭 이벤트를 등록합니다
//지도를 클릭하면 마지막 파라미터로 넘어온 함수를 호출합니다
daum.maps.event.addListener(map, 'click', function(mouseEvent) {
// 클릭한 위도, 경도 정보를 가져옵니다
var latlng = mouseEvent.latLng;
// 마커 위치를 클릭한 위치로 옮깁니다
marker.setPosition(latlng);
var message = '클릭한 위치의 위도는 ' + latlng.getLat() + ' 이고, ';
message += '경도는 ' + latlng.getLng() + ' 입니다';
var resultDiv = document.getElementById('clickLatlng');
resultDiv.innerHTML = message;
});