【问题标题】:How can I make infowindows resize for tweets in Google Maps v3 with Javascript如何使用 Javascript 调整 Google Maps v3 中推文的 infowindows 大小
【发布时间】:2010-07-17 10:54:15
【问题描述】:

我正在尝试在 Google 地图的信息窗口中添加一些推文。我让推文显示在我的信息窗口内容的 div 中,但它的大小错误。

我认为通过在单击标记时调用“content_changed”,信息窗口会调整大小 - 它不会。

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

谢谢,

詹姆斯

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);
});

【问题讨论】:

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


    【解决方案1】:

    尝试在open() 之前调用infowindow.close();。我很确定它会强制它重新渲染

    【讨论】:

      【解决方案2】:

      这并不是一个完全受支持的解决方案,但在 Firebug 中四处寻找之后,我发现了一种强制调整窗口大小的简单方法:

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

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

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

      【讨论】:

        【解决方案3】:

        我最终得到:

        infoWindowLinea.setContent(infoWindowLinea.getContent());
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-02-26
          • 2012-08-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-30
          • 2012-01-27
          相关资源
          最近更新 更多