如何使用Javascript在Google Maps v3中为infowindows调整大小

时间:2010-07-17 10:54:15

标签: javascript google-maps google-maps-api-3 infowindow

我正在尝试在Google地图中向infowindow添加一些推文。我得到的推文显示在一个div中,这是我信息窗口的内容,但它的大小不对。

我想通过在点击标记时调用' content_changed ',infowindow会调整大小 - 它没有。

我确信这很简单,有人可以帮助我吗?

谢谢,

詹姆斯

var myLatlng = new google.maps.LatLng(51.500261,-0.126793);
var myOptions = {
  zoom: 12,
  center: myLatlng,
  mapTypeId: google.maps.MapTypeId.ROADMAP
};

var map = new google.maps.Map(document.getElementById("map_canvas"),
    myOptions);

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

var infowindow = new google.maps.InfoWindow();
infowindow.setContent(document.getElementById("station"));

google.maps.event.addListener(marker, 'click', function() {
    google.maps.event.trigger(infowindow, 'content_changed');
    infowindow.open(map,marker);
});

3 个答案:

答案 0 :(得分:1)

尝试在infowindow.close();之前致电open()。我很确定它会迫使它重新渲染

答案 1 :(得分:0)

这不是一个完全支持的解决方案,但在Firebug中进行了探讨之后,我发现了一种在窗口上强制调整大小的简单方法:

infoWindow.b.contentSize = new google.maps.Size(w, h);
google.maps.event.trigger(infoWindow.b, 'contentsize_changed');

就第一行应该设置的真实W / H而言,这是通过标准属性或jQuery方法查看infoWindow.b.contentNode并获得实际宽度/高度的问题。

我不确定infoWindow.b是什么,但它似乎是某种“内容”对象。我希望他们能够揭露并记录下来。

答案 2 :(得分:0)

我最终得到了:

infoWindowLinea.setContent(infoWindowLinea.getContent());