使用Gmaps4rails,如何显示当前在地图视图中可见的位置列表?

时间:2012-06-25 10:12:09

标签: ruby-on-rails gmaps4rails

我正在使用gmaps4rails。我正在努力实现以下目标:地图显示带有标记的位置,用户可以按照自己的意愿缩放/移动他的视线。我想要的是,当他这样做时,地图旁边的列表应该动态更新当前可见的所有位置。 我尝试使用回调机制和getBounds来过滤可见内容的数据结构,但没有成功。 我怎么能去做呢?

非常感谢! 儒略

在我的控制器中:类LocationsController< ApplicationController中

  def index
    if (params[:sw_y] && params[:sw_x] && params[:ne_y] && params[:ne_x])
        bounds = [ [params[:sw_x].to_f, params[:sw_y].to_f], 
                 [params[:ne_x].to_f, params[:ne_y].to_f] ]
        @locations_within_bounds = Location.within_bounds(bounds)
    else
        @locations_within_bounds = Location.all
    end   
  @locations = Location.all
  @json = Location.all.to_gmaps4rails

在我看来:

<%= gmaps("markers" => {"data" => @json, "options" => {"list_container" => "markers_list", "do_clustering" => true } }   ) %>

<table>
  <tr>
    <th>Name</th>
    <th>Address</th>
    <th>Longitude</th>
    <th>Latitude</th>
    <th></th>
    <th></th>
    <th></th>
  </tr>

<% @locations_within_bounds.each do |location| %>
  <tr>
    <td><%= location.name %></td>
    <td><%= location.address %></td>
    <td><%= location.longitude %></td>
    <td><%= location.latitude %></td>
 </tr>
<% end %>
</table>

0 个答案:

没有答案