주소로 장소표시할때는 클러스터 사용을못하나요?
주소로 장소 표시는 비동기 로직으로
전체 주소 정보를 받아온 다음 클러스터러에 추가해야 합니다.
아래 콜백 함수에서 카운트 비교 후 다음 함수를 호출하는 방법과
promise를 사용하는 방법도 함께 참고해주세요.
https://devtalk.kakao.com/t/addresssearch/44163/4
https://devtalk.kakao.com/t/geocoder-coord2address/83940/2
const list = [
'제주특별자치도 제주시 첨단로 242',
'경기도 성남시 분당구 판교역로 235',
'경기도 성남시 분당구 판교역로 231',
'제주특별자치도 서귀포시 상효동 산 1-2',
'제주특별자치도 제주시 첨단로 216-19',
'제주특별자치도 제주시 첨단로7길 23'
];
var geocoder = new kakao.maps.services.Geocoder();
const addressSearch = address => {
return new Promise((resolve, reject) => {
geocoder.addressSearch(address, function(result, status) {
if (status === kakao.maps.services.Status.OK) {
resolve({"lat": result[0].y, "lng": result[0].x});
} else {
reject(status);
}
});
});
};
// async-await
(async () => {
try {
const positions = [];
for(const address of list) {
const result = await addressSearch(address);
positions.push(result)
}
var markers = positions.map(function(position) {
return new kakao.maps.Marker({
position : new kakao.maps.LatLng(position.lat, position.lng)
});
});
// 클러스터러에 마커들을 추가합니다
clusterer.addMarkers(markers);
} catch (e) {
console.log(e);
}
})();