카카오 지도 질문드립니다. 새로고침을 하면 보여지는 위치가 다릅니다

daumapi 라는 함수를 호출하는 시점을 잘 잡으셔야 합니다.
지도는 Map 객체에 넣어주는 HTMLElement의 width, height에 따라 지도 영역을 잡으며
해당 속성값이 제대로 지정되어 있지 않았을 경우, 즉 display:none 이었다거나 block이 된다거나 동적으로 사이즈가 변경되는 경우에는 문제가 됩니다.

이 경우 map.relayout()이라는 함수를 호출하여 지도 영역이 변경되었음을 API에 알려주셔야 합니다.
http://apis.map.daum.net/web/sample/mapRelayout/

순서는

  1. 지도가 표출되는 엘리먼트의 사이즈가 변경 되거나 display 속성이 변경됨
  2. map.relayout() 호출하여 변경된 사이즈를 알려 줌
  3. map.setCenter(), map.setLevel() 호출로 지도 중심을 재설정

이렇게 되어야 하며

만약 iframe같이 다른 페이지의 문서가 삽입된 경우에는 해당 iframe의 onload 이벤트나 DomContentLoaded 이벤트에서부터 지도 코드가 시작되어야 안전합니다.

1개의 좋아요