0

[参考 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 中的相关元素,从而在 GMap 旁边创建辅助的自定义 HTML 内容。

4

1 回答 1

1

如果您想获得每个标记的唯一标识符,您应该使用每个对象 id:

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

答案1:

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

因此,使用您的适当逻辑创建您自己的函数。

答案2:

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

基本上,做:

<%= gmaps(your_options) %>

<% content_for :scripts do %>
<script type="text/javascript">
Gmaps.map.callback = function() {
  //your code
}
</script>
<% end %>
于 2012-05-06T17:29:02.520 回答