[FAQ] 지도/로컬 API 문의 전 꼭 읽어 주세요.
https://devtalk.kakao.com/t/faq-api/125610
안녕하세요
줌 레벨을 변경할 때마다 마커 이미지 크기를 바꾸고 싶은데요, 답변해주셨던 것들을 구글링해본 결과 changeMarkerImage 함수로 바꾸신 걸 봤습니다.
1~9까지는 default 사이즈로 두고
10~12 (최대 12) 레벨은 zoom 사이즈로 변경을 하려고 하는데요
// 좌표와 마커이미지를 받아 마커를 생성하여 리턴하는 함수입니다
function createMarker(position) {
var marker = new kakao.maps.Marker({
position : position,
clickable : true
// 마커를 클릭했을 때 지도의 클릭 이벤트가 발생하지 않도록 설정합니다
});
return marker;
}
// 측정소 마커를 생성하고 측정소 마커 배열에 추가하는 함수입니다
function createStationMarkers() {
for (var i = 0; i < stationPositions.length; i++) {
var imageSize = new kakao.maps.Size(44, 44);
// 마커이미지와 마커를 생성합니다
var defaultImage = new kakao.maps.MarkerImage(stationImageSrc[i], imageSize),
marker = createMarker(stationPositions[i]);
stationMarkers.push(marker);
var changeMarkerImage = function(){
// 지도의 현재 레벨을 얻어옵니다
var level = map.getLevel();
var zoomImage = new kakao.maps.MarkerImage(stationImageSrc[i], new kakao.maps.Size(30, 30));
if (1 <= level && level <= 9) {
markerImage = defaultImage;
} else if (10 <= level && level <= 12) {
markerImage = zoomImage;
}
marker.setImage(markerImage);
};
kakao.maps.event.addListener(map, 'zoom_changed', changeMarkerImage);
changeMarkerImage(); // initialize
}
}
function setStationMarkers(map) {
for (var i = 0; i < stationMarkers.length; i++) {
stationMarkers[i].setMap(map);
}
}
근데 하나의 이미지만 엑박이 뜨고 변경되지 않습니다… 도저히 뭐가 틀렸는 지 모르겠어서 질문 남깁니다…
감사합니다