如何在mouseOver事件上显示infowindow

时间:2012-04-20 03:26:07

标签: ruby-on-rails ruby-on-rails-3 gmaps4rails

我正在升级旧的Rails 2.1应用程序,并使用Gmaps4Rails gem替换google_maps插件。到目前为止,转换非常简单。剩下的任务是以编程方式显示和隐藏我在地图旁边显示的地址列表上的标记infowindows。

我的问题是如何获得标记的句柄以显示信息窗口?

我找到了this question,但它似乎处理了标记的mouseOver。基本上,我想从地图外部的元素中使用mouseOver事件来显示标记的信息窗口。

感谢任何帮助。

此行为似乎内置于google_maps插件中(据我所知)。

1 个答案:

答案 0 :(得分:1)

在gmaps4rails中没有内置的方法来实现这一点。但以下是相关步骤:

1)在您的控制器中

 Foo.your_scope.to_gmaps4rails do |obj, marker|
   # Add any custom elements here
   marker.json { :id => obj.id }
 end

这将在Gmaps.map.markers数组中添加每个元素的id。

2)在你看来

HTML:

  • 向每个边元素添加具有相关对象的id的属性

使用Javascript:

  • 编写一个js函数,从它的id中检索一个标记(基本上,循环Gmaps.map.markers并检查每个元素的id)

  • 编写一个js函数,它可以观察你的副元素mouseOver。在它的回调中,通过上述功能找到相关标记,最后触发:foundMarker.infowindow.open(Gmaps.map.map, foundMarker.serviceObject)