지도 창 크기를 변경할 때 다시 그려지는 것은
resize 이벤트 발생 시 map.relayout()을 호출하기 때문인데요.
지도 객체 선언하기 전에 디버깅을 해서 div 스타일이 잘 들어가 있는지 확인 부탁드리고,
지도가 모달 창이나 탭으로 띄어지는 구조이거나 disply: none; → disply: block; 으로 변하는 구조라면
지도가 보이는 시점에 relayout()을 호출해야 합니다.
리액트를 사용하는데, 먼저 지도의 중심좌표를 클라우드에서 불러서 맵을 로드합니다.
클라우드에서 불러올 때, 가끔씩 중심좌표가 undefined가 되었을때 렌더링함을 확인하였습니다.
렌더링하는 타이밍이 정말 미묘하게 늦을때가 있었던 모양입니다.
그래서 랜덤하게 맵 로드가 안되었던 것 같습니다.
또한 지도가 조금만 나오는 문제도 말씀해주신 map. relayout() 함수로 해결하였습니다.
이제 지도가 로드되지 않는 현상은 해결되었습니다. 이 문제가 사라지니, NaN문제도 사라졌습니다. 감사합니다!!
그런데 한자기 문제가 생겼습니다.
지도가 조금만 나올 때, 다시그리도록 relayout()을 사용하여 지도를 그리면, 지도의 위치가 달라지는 때가 있습니다.
맵 위치가 달라질 이유는 별로 없다고 생각하는데…
다른 글들을 보면서 추측되는 것은, CSS때문에 맵 위치가 달라지는것인지, 아니면
제가 모르는 창크기변경이 있는것인지 확인중에 있습니다.
제 노트북에서는 랜더링 해준 좌표만큼주고 맴도 잘뜨고 오버레이도 잘뜹니다 근데 다른 사람 노트북에서 저의코드를 그대로 복사한후 실행 시켜는데 뭔가 랜더링이 잘 안불러져오는 상황 같이 위쪽에 만 지도 가뜨고 나머지 부분들은 짤려서 나옵니다 창을 늘리니까 맵이 나오긴하는데 랜더링한 좌표값 정확하게 안뜨고 다른곳에 랜더링이 되어있는 상황이 나옵니다 혹시 이런 오류 아시는지 ㅠㅠ