如何在Google-Maps-for-Rails中为标记添加半径



我正在使用Google-Maps-for-Rails gem,我现在正在尝试显示圆圈。

我的模型"Place"包含:

    <
  • 经度/gh>

显示标记没有问题:

# Controller: @markers = Place.all.to_gmaps4rails
gmaps("markers" => {"data" => @markers})

不幸的是,它不包括:radius => ..我还知道圆圈可以像这样显示:

gmaps(
"circles" => { "data" => '[
                         {"longitude": -122.214897, "latitude": 37.772323, "radius":1000000}
                         ]',
})

是否有任何方法包括半径属性在标记哈希?如:

gmaps("circles"     => { "data" => @markers })

可能是这样的:

Place.all.each |place| place.merge!(:radius => 1000) ...

可以,但我认为可能有更好的解决方案

标记和圆圈背后的逻辑是完全不同的。

在控制器

@markers = Place.all.to_gmaps4rails
@circles = Place.all.map{|p| {:longitude => p.longitude, :latitude => p.latitude, :radius => p.radius}}.to_json

在你看来:

<%= gmaps({ "markers" => {"data" => @markers},
           "circles" => {"data" => @circles}
          }) %>

或者如果您不需要infowindow或其他功能,您可以简单地执行:

在控制器

@circles = Place.all.map{|p| {:longitude => p.longitude, :latitude => p.latitude, :radius => p.radius}}.to_json

在你看来:

<%= gmaps({ "markers" => {"data" => @circles},
           "circles" => {"data" => @circles}
          }) %>

相关内容

  • 没有找到相关文章