아래와 같이 함수를 만들어서
지도의 크기가 변할 때 sw,ne 지도의 모서리좌표를 잡아서
아래의 함수의 매개변수에 전달하여
ajax로 위도 경도를 검색해서 쿼리를 전달받아
새로이 maker와 clusterer를 생성해서 지도에 보여주는 모듈인데…
검색은 지도가 표시되는 좌표마다 새롭게 받아오는데…
그 이전에 만들었던 makers가 클러스터러에 포함되어 클러스터러에 표시되는 마커 갯수가
점점 커집니다.
var clusterer= {};
var markers={};
해봤지만 초기화되지 않는 것 같은데…
지도크기가 변할 때마다,
클러스터러의 세팅을 초기화하는 방법이 있나요?
function changeMap(s_lat,w_lng,n_lat,e_lng){
$.ajax({
url: "http://url/get_data.php",
type : 'GET',
data:{"s_lat": s_lat, "w_lng": w_lng, "n_lat": n_lat, "e_lng": e_lng},
dataType : 'json',
}). error(function(){
alert(“error”);
})
.
success(function(data) {
// 마커 클러스터러로 관리할 마커 객체는 생성할 때 지도 객체를 설정하지 않습니다
var markers = $(data.positions).map(function(i, position) {
return new kakao.maps.Marker({
position : new kakao.maps.LatLng(position.lat, position.lng)
});
});
for(var n = 0; n < data.positions.length; n++) {
var infowindow = new kakao.maps.InfoWindow({
content: data.positions[n].title, // 인포윈도우에 표시할 내용
removable : true
});
// 마커에 mouseover 이벤트와 mouseout 이벤트를 등록합니다
// 이벤트 리스너로는 클로저를 만들어 등록합니다
// for문에서 클로저를 만들어 주지 않으면 마지막 마커에만 이벤트가 등록됩니다
}
// 클러스터러에 마커들을 추가합니다
clusterer.addMarkers(markers);
});
}