如何为局部图创建地图图标?

时间:2011-02-13 22:15:43

标签: javascript ruby-on-rails map icons partial

我有一个记录列表显示为屏幕一侧的部分,可以过滤。而在另一边,我有一个手绘地图,这是一个背景图像的div。如何在地图上为每条记录设置一个图标,该图标仅在显示记录部分时显示?

索引页面如下所示:

<div class="map_container">
</div>

<div class="filter_options_container">
  filter form stuff is here
</div>

<div class="venue_partials_container">
  <%= render :partial => 'venue', :collection => @venues %>
  <div class="clearall"></div>

  <%= will_paginate @venues %>

  <div class="venue_partial_button">
    <%= link_to 'add a new venue', new_venue_path %>
  </div>
</div>

<div class="clearall"></div>

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您需要在场地对象中添加一些方法或更改渲染方法,在某种程度上......好吧,只需输出一些javascript数据,如下一个场所:

<script type="text/javascript"><!--
data.push({
  x: <%= this.x %>,
  y: <%= this.y %>,
  someOtherStuff: <%= this.stuff %>
});
--></script>

然后添加一个函数,它将迭代该数据数组:

function insertIconOnMap(mapItem){
  var img = $("<img>", {
    'class': "mapIcon",
    'src': mapItem.someOtherStuff
  }).css({
    'left': mapItem.x,
    'top': mapItem.y
  });
  $("#map").append(img);
}
data.each(insertIconOnMap);

和某些css一样

#map { position: relative; }
#map .mapIcon { position: absolute; }

如果你想以更优雅的方式...我忘记了我所知道的关于Ruby的一切:-D而且是你,谁为你的问题添加javascript标签; - )