2012-03-07 6 views
2

私はそうのようにGoogleマップのオブジェクトをインスタンス化しています: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を追加すると、私はこの(すべての奇妙な灰色のスペースに注意)のように見えるマップ取得:

http://cl.ly/3B3z1e3g2h1U301r0X1R

を私が最初にthis.elを追加する場合、私は、しかし、この問題はありません。 DOMを作成し、マップオブジェクトをインスタンス化します。マップを作成して追加する方法はありますか?これは私の地図コードの一部を大幅に簡略化します(私はこれをBackbone.jsビューで使用しています)。

ありがとうございました。

-Scott

+0

同様の質問からの同じコメント:リージョン付きのMarionetteJSを使用している場合、onRenderではなくonShowメソッド内にマップを作成すると、ビューが既にDOMにあるため、問題は解決します。 – alancasagrande

答えて

3

あなたがDOMにthis.elを追加したら、(this.map、 'サイズを変更')google.maps.event.triggerを呼び出す必要があります。

+0

... APIはまだサイズがないと考えているので、別の方法でそれを伝える必要があります。 –

+0

どうもありがとう! – scttnlsn

関連する問題