我使用谷歌地图加载带有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。)
我感谢任何帮助。
答案 0 :(得分:0)
地图最初是隐藏的,并在单击某个按钮时显示,我注意到在加载时显示地图时没有出现问题。
所以我更改了JavaScript以触发调整大小并在div淡入后重新定位地图:
$('#'+name).fadeIn(300,function(){
google.maps.event.trigger(gomap, 'resize');
map.setCenter(gopoint);
});
为我修好了。