谷歌地图API 3加载地图在左上角,调整大小不起作用



我使用谷歌地图加载带有latLng参数的地图。这基本上很好,但有时(就像现在),地图会在左上角居中。我试过这个把戏google.maps.event.trigger(gomap, 'resize');

但这并没有起到作用,所以我做了我在其他地方找到的东西,并将其封装在一个等待地图空闲的监听器中:

google.maps.event.addListenerOnce(map, 'idle', function() {
google.maps.event.trigger(gomap, 'resize');
});

但这也不起作用。我不确定我必须把这些放在哪里,所以我当前的代码看起来如下(简化)

var gomap;
function initialize(types,callback,lat,long,address) {
map = new google.maps.Map(document.getElementById('map-canvas'),mapOptions);
gomap = map;
}
google.maps.event.addDomListener(window, 'load', initialize(['geocode'],'onAddressUpdate',lat,long,address));
google.maps.event.addListenerOnce(map, 'idle', function() {
google.maps.event.trigger(gomap, 'resize');
});

(gomap=map之所以存在,是因为还有几个其他实例使用var map,所以我只将map的值分配给全局gomap)。

我感谢你的帮助。

映射最初是隐藏的,当单击某个按钮时会显示,我注意到在加载时显示映射时没有出现问题。

因此,我更改了JavaScript,以触发调整大小,并在div淡入后重新居中映射:

$('#'+name).fadeIn(300,function(){
google.maps.event.trigger(gomap, 'resize');
map.setCenter(gopoint);
});

这帮我搞定了。