2012-03-07 5 views
2

는 그래서 같은 구글 맵 오브젝트를 인스턴스화하고 있습니다 : this.eldocument.createElement('div') 통해 생성 된 오브젝트이지만 아직 DOM에 삽입되지 않은인스턴스를 생성 할 때 Google Map 요소가 DOM에 있어야합니까?

this.map = new google.maps.Map(this.el, { 
    center: new google.maps.LatLng(this.lat, this.lng), 
    mapTypeId: google.maps.MapTypeId.ROADMAP, 
    zoom: this.zoom 
}); 

. 내가 나중에 DOM에 this.el를 추가 할 때 나는 (모든 이상한 회색 공간에주의)이 보이는지도를 얻을 : 내가 처음에 this.el를 추가하는 경우

http://cl.ly/3B3z1e3g2h1U301r0X1R

내가하지만,이 문제가 없습니다 DOM을 생성 한 다음지도 객체를 인스턴스화합니다. 지도를 만든 다음 추가 할 수있는 방법이 있습니까? 이렇게하면 내 맵 코드가 크게 단순해질 것입니다 (Backbone.js 뷰에서 이것을 사용하고 있습니다).

감사합니다.

-Scott

+0

비슷한 질문의 동일한 의견 : 지역과 함께 MarionetteJS를 사용하는 경우보기가 DOM에 이미 있으므로 onRow보다는 onShow 메서드 내에서지도를 만드는 것이 문제를 해결합니다. – alancasagrande

답변

3

당신이 DOM에 this.el를 추가 한 후에는 google.maps.event.trigger을 (this.map, '크기 조정')를 호출 할 수있다;

+0

... API는 여전히 크기가 없다고 생각하기 때문에 달리 말할 필요가 있습니다. –

+0

굉장합니다. 고마워요! – scttnlsn

관련 문제