如何使用 Javascript 调整 Google Maps v3 中推文的信息窗口大小

发布于 2024-09-10 03:54:03 字数 817 浏览 7 评论 0原文

我正在尝试向 Google 地图中的信息窗口添加一些推文。我将推文显示在一个 div 中,该 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);
});

I'm trying to add a few tweets to an infowindow in Google Maps. I get the tweets to display in a div that is the content of my infowindow, but it's the wrong size.

I thought by calling 'content_changed' when the marker is clicked, the infowindow would resize - it doesn't.

I'm sure this is pretty straightforward, can someone help me out?

Thanks,

James

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

人事已非 2024-09-17 03:54:03

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

Try to call infowindow.close(); before open(). I'm pretty sure that it will force it to rerender

攒一口袋星星 2024-09-17 03:54:03

这并不完全是受支持的解决方案,但在 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 到底是什么,但它似乎是某种“内容”对象。我希望他们能够揭露这一点并记录下来。

This isn't exactly a supported solution, but after poking around in Firebug, I found an easy way to force a resize on the window:

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

As far as what the real W/H should be set to on the first line, that's a matter of looking at infoWindow.b.contentNode and getting a real width/height either through the standard properties or jQuery's methods.

I'm not sure exactly what infoWindow.b is, but it seems like it's some sort of "content" object. I wish they would expose this and document it.

烟若柳尘 2024-09-17 03:54:03

我最终得到:

infoWindowLinea.setContent(infoWindowLinea.getContent());

I ended up with:

infoWindowLinea.setContent(infoWindowLinea.getContent());
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文