谷歌地图API v3 infowindow页面加载错误的位置

Ben*_*enn 1 google-maps-api-3

看起来像google地图信息框在pageload上的位置是错误的,或者当你的地图高度设置低于400/380px时至少错误示例 http://jsfiddle.net/TbDzG/18/

 var startLocation = new google.maps.LatLng(36.151685,-115.152438);

function initialize() {
    var mapOptions = {
        center: startLocation,
        zoom: 8,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("map-canvas"),
    mapOptions);

  var marker = new google.maps.Marker({
      position: startLocation,
      map: map,
      draggable:true,
      animation: google.maps.Animation.DROP,
      title:"Hello World!"
  });
  var infowindow = new google.maps.InfoWindow();
infowindow.setContent('some content here');
infowindow.open(map, marker);  


}
google.maps.event.addDomListener(window, 'load', initialize);
Run Code Online (Sandbox Code Playgroud)

有没有人知道如何将它移动到正确的位置并使信息框居中,而不是将标记居中?

dev*_*bnz 5

你不能使infowindow居中,因为marker和infowindow(+ map)具有相同的位置.

试试这个,当加载地图时,InfoWindow将被打开并将平移地图.

var infowindow = new google.maps.InfoWindow();
infowindow.setContent('some content here');
google.maps.event.addListenerOnce(map, 'idle', function(){infowindow.open(map, marker);  });
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/iambnz/jAgcz/