안녕하세요 코딩을 공부하는 학생입니다.
다름이 아니고 카카오맵 api를 사용하다가 안되는 부분이 있어서 질문하고자 글을 남깁니다.
아래 코드에서 testing으로 마커를 찍을 장소를 불러와서 for문을 통해
testing[0]~testing[3]까지 순서대로 주소를 좌표값으로 변환한 후 1~4번 순으로 마커를 찍으려고합니다.
코드에서는 coords_data.push(coords); 를 통해서 먼저 순서대로 배열에 집어 넣고 좌표를 찍을 계획이었는데,
들어가는 순서가 새로고침을 할떄마다 무작위로 들어가집니다.
어떻게 해야 새로고침을 해도 값이 순서대로 변하지 않고 찍히게 되는지 가르침을 구합니다…
var coords_data = [];
var testing = $('.test1').val();
testing = testing.replace('[','');
testing = testing.replace(']','');
testing = testing.replace(/\'/gi,"");
testing = testing.split(',')
// testing = ['서울 종로구 관훈동 155-2', ' 서울 마포구 서교동 395-78', ' 서울 서초구 방배동 838-29', ' 서울 성동구 성수동2가 314-2']
var geocoder = new kakao.maps.services.Geocoder();
for(var i=0;i<testing.length;i++){
geocoder.addressSearch(testing[i], function(result,idx,status) {
var coords = new kakao.maps.LatLng(result[0].y, result[0].x);
coords_data.push(coords);
for(var j=0; j<testing.length;j++){
var imageSrc3 = 'https://planner.jeju.com/images/map_icon/pin_SC_'+(j+1)+'.png',
imageSize3 = new kakao.maps.Size(35, 40),
imageOption3 = {
spriteSize : new kakao.maps.Size(24, 38), // 스프라이트 이미지의 크기
offset : new kakao.maps.Point(13, 37)
};
var markerImage3 = new kakao.maps.MarkerImage(imageSrc3, imageSize3, imageOption3)
var marker3 = new kakao.maps.Marker({
map: map,
position: coords_data[j],
clickable : true,
image : markerImage3 //마커 이미지 받기
});
}
});
}