Javascript Maps API v3:map.setCenter工作不正常

Javascript Maps API v3:map.setCenter工作不正常,javascript,google-maps-api-3,Javascript,Google Maps Api 3,我在Maps api V3中遇到了一个设置中心问题 首先,这是我的代码: function initialize() { var myLatlng = new google.maps.LatLng(<?= $product["latitude"] ?>,<?= $product["longitude"] ?>); var center = myLatlng; var map = new google.maps.Map(document.getEl

我在Maps api V3中遇到了一个设置中心问题

首先,这是我的代码:

function initialize() {
    var myLatlng = new google.maps.LatLng(<?= $product["latitude"] ?>,<?= $product["longitude"] ?>);
    var center = myLatlng;

    var map = new google.maps.Map(document.getElementById('map'), {
        zoom: 11,
        center: myLatlng
    });

    var marker = new google.maps.Marker({
        position: myLatlng,
        map: map
    });

    google.maps.event.addDomListener(map, 'idle', function() {
        center = map.getCenter();
    });
    google.maps.event.addDomListener(window, 'resize', function() {
        map.setCenter(center);
    });        
}


google.maps.event.addDomListener(window, 'load', initialize());
函数初始化(){
var mylatng=newgoogle.maps.LatLng(,);
var中心=myLatlng;
var map=new google.maps.map(document.getElementById('map'){
缩放:11,
中心:myLatlng
});
var marker=new google.maps.marker({
职位:myLatlng,
地图:地图
});
google.maps.event.addDomListener(映射'idle',函数(){
center=map.getCenter();
});
google.maps.event.addDomListener(窗口,“调整大小”,函数(){
地图设置中心(中心);
});        
}
google.maps.event.addDomListener(窗口'load',initialize());
然后我的问题是:

  • 当我将我的窗口从全屏缩小到更小时:它工作(事件为 触发两次,不知道为什么)
  • 当我再次使我的窗口全屏显示时:它不工作
  • 当我把我的窗户变小或变大时,它什么也不做
地图的其余部分运行良好,我真的不明白这一点。

这是不正确的:

google.maps.event.addDomListener(window, 'load', initialize());
google.maps.event.addDomListener(map, 'idle', function() {
    center = map.getCenter();
});
它立即运行初始化,并在窗口加载事件运行时将其返回值用作执行的函数

这也是不正确的:

google.maps.event.addDomListener(window, 'load', initialize());
google.maps.event.addDomListener(map, 'idle', function() {
    center = map.getCenter();
});
map
不是DOM元素,应该是google.maps.event.addListener

您的问题是,当映射的DOM元素更改大小时,您没有触发
map
resize事件

google.maps.event.addDomListener(window, 'resize', function() {
  google.maps.event.trigger(map, 'resize');
  map.setCenter(center);
});

代码片段:

函数初始化(){
var mylatng=new google.maps.LatLng(40.7127837,-74.0059413);
var中心=myLatlng;
var map=new google.maps.map(document.getElementById('map'){
缩放:11,
中心:myLatlng
});
var marker=new google.maps.marker({
职位:myLatlng,
地图:地图
});
google.maps.event.addListener(映射'idle',函数(){
center=map.getCenter();
});
google.maps.event.addDomListener(窗口,“调整大小”,函数(){
google.maps.event.trigger(映射,'resize');
地图设置中心(中心);
});
}
google.maps.event.addDomListener(窗口“加载”,初始化)
html,
身体,
#地图{
身高:100%;
宽度:100%;
边际:0px;
填充:0px
}


好吧,我按照你的指示做了,它很有效,所以除了谢谢之外,我没有别的话要说了!我忘了
google.maps.event.trigger(映射,'resize')。谢谢