안녕하세요.
var map = new kakao.maps.Map(container, options) 를 통해 맵을 생성하고 있습니다.
그런데 프로젝트의 특성상 맵이 보여지는 부분에는 스크립트를 동적으로 호출해야 하는 특이점이 있어서
$.getScript()를 통해서 maps/sdk.js를 미리 호출한 뒤, kakao.maps.load()를 통해 StaticMap을 생성하고 있는데요.
StaticMap이 아닌 일반 Map은 위 방식대로 스크립트를 미리 호출하려고 하니 자꾸만 오류가 납니다.
혹시 Map()역시 정적 맵처럼 미리 호출하는 방법은 없나요…?
자답입니다.
검색을 하다보니, 어떤분께서 setTimeout()과 관련된 내용을 작성 해주셨네요.
맵 내에서 kakao.maps.Map() 뿐 아니라 kakao.maps.services.Geocoder()역시 사용해야 했는데
$.getScript()로 스크립트 호출 후 setTimeout() 내에서 작업했더니 동적 지도 역시 정상적으로 출력됩니다.
혹여 같은 불편을 겪는 분들을 위해 작성해둡니다.
감사합니다.
2개의 좋아요
setTimeout은 살짝 위험한 코드입니다.
만약이라도 스크립트 로딩이 Timeout으로 설정한 딜레이 시간보다 더 늦어지게 되면 문제가 될 수 있습니다.
다음 답변을 참고해 주세요.
$.getScript('http://dapi.kakao.com/v2/maps/sdk.js?appkey=APPKEY&autoload=false ', function(){ console.log('script load'); daum.maps.load(function(){ console.log('daum maps load'); var mapContainer = document.getElementById('map'); var options = { center: new daum.maps.LatLng(33.450701, 126.570667), level: 8 }; var map = new daum.maps.Map(mapContainer, options); }); }); 해당 코드로 잘 동작하며 jQuery의 버전은 1.7.2로 시도했습니다. [image] jQuery 버전이 문제가 될 것 같지는 않습니다. 이미 'scri…