我正在使用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}
}) %>