如何使用Google-Maps-for-Rails使信息窗口自动显示为打开状态

我想显示一个地图,其中包含自动显示页面上单个标记的信息框,就像http://code.google.com/apis/maps/documentation/javascript/examples/map-coordinates.html

我试图编写一个回调函数来完成这个,但它只是不适合我。

  Gmaps.map.callback = function() { if (Gmaps.map.markers.length == 1) { var marker = Gmaps.map.markers[0]; var infowindow = marker.infowindow; infowindow.open(Gmaps.map, marker); } }   

你的代码几乎是完美的。 除了代替:

  infowindow.open(Gmaps.map, marker); 

你应该有:

  infowindow.open(Gmaps.map.map, marker); 

实际上,Gmaps.map是一个容器,Gmap.map.map是google对象。

我知道这些名字令人困惑。 抱歉。

PS:请务必在您的视图中将此代码放在gmaps调用下。

我试图完成同样的事情,只是打开标记列表中的第一个标记。 所以代码几乎是一样的。 我已经完成了你的建议,但它没有显示信息窗口。

 <%= gmaps4rails(@json) %> <% content_for :scripts do %>  <% end %> 

地图显示找到,但初始化时不会弹出信息窗口! 有任何想法吗?

对我有用的回调函数:

 Gmaps.map.callback = function() { function openInfoWindow(){ var m, marker; marker = Gmaps.map.markers[2]; m = marker.serviceObject; marker.infowindow.open(Gmaps.map.map, m); } openInfoWindow(); } 

您正在将Javascript和Ruby混合在一起。 看一下你的javascript调试器(你正在使用一个吗?如果没有,Chrome或Safari中的web检查器很棒,Firebug for Firefox也是如此),你会看到它抱怨。

如果没有看到你的控制器代码,我就无法给你太多的细节,但看一下这篇文章 ,它可能会指出你正确的方向。