实例化时,Google Map元素是否必须在DOM中?

时间:2012-03-07 21:43:23

标签: google-maps dom google-maps-api-3

我正在实例化Google Map对象,如下所示:

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
});

其中this.el是通过document.createElement('div')创建但尚未插入DOM的对象。当我稍后将this.el附加到DOM时,我得到一个看起来像这样的地图(注意所有奇怪的灰色空间):

http://cl.ly/3B3z1e3g2h1U301r0X1R

我没有这个问题,但是,如果我首先将this.el附加到DOM然后实例化地图对象。有没有办法创建地图然后追加它?这将极大地简化我的一些地图代码(我在Backbone.js视图中使用它。)

感谢。

-Scott

1 个答案:

答案 0 :(得分:3)

将this.el附加到DOM后,您必须调用google.maps.event.trigger(this.map,'resize');