使用gmap4rails,如何在GMap旁边呈现特定于标记的辅助HTML内容?

时间:2012-05-06 16:13:50

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

[请参阅https://github.com/apneadiving/Google-Maps-for-Rails/wiki/Markers]

我按照创建GMap侧边栏的说明进行操作。这不是 我想要实现的目标。请记住我的GMap包含 异构标记,我想强调其中的一个子集 在GMap附近的辅助HTML内容中(例如,在表格或其他内容中):

问题#1:你在哪里循环所有标记并仅选择那些标记 您想要哪些辅助HTML内容? (我知道你有阻止支持 用于补充每个标记的默认JSON的逻辑;我不确定这是我需要的。)

问题2:我可以在javascript中实现一些回调, 这样当渲染标记时,我可以检查它是什么类型的标记, 然后适当修改DOM(即辅助HTML内容)?

我的观点是每个标记的JSON应该具有该属性 可以唯一地识别该标记。也许现在它只是“描述” 属性。然后提供我们在javascript中有一些回调,我们可以尊重 只有那些属于某个“描述”类别的标记 - 例如, “红色,白色和蓝色”标记。然后javascript中的回调可以操纵 DOM中的相关元素,从而创建辅助自定义HTML内容 与GMap一起。

1 个答案:

答案 0 :(得分:1)

如果要为每个标记获取唯一标识符,则应使用每个对象id:

your_objects.to_gmaps4rails do |obj, marker|
  marker.json({id: obj.id})
end

正确答案为:

默认情况下,所有标记都存储在Gmaps.map.markers中。您可以通过这种方式获取第一个标记的ID:Gmaps.map.markers[0].id

因此,请使用充足的逻辑创建自己的函数。

ANSWER2:

要使用的回调是Gmaps.map.callback

基本上,做:

<%= gmaps(your_options) %>

<% content_for :scripts do %>
<script type="text/javascript">
Gmaps.map.callback = function() {
  //your code
}
</script>
<% end %>