我正在尝试在一个静态地图上放置多个标记。
我正在使用geocoder gem(关注railscast tutorial)。管理以实现这一目标。
现在,我正在尝试将所有标记循环到索引页面上的一个地图上,但它会分别显示每个地图。
这是索引页面上的代码:
<% @locations.each do |location| %>
<%= image_tag "http://maps.google.com/maps/api/staticmap?size=450x300&sensor=false&zoom=15&markers=#{location.latitude}%2C#{location.longitude}" %>
<% end %>
如何循环显示这些标记,以便所有标记显示在一个地图上而不是每个单独的长度/纬度的地图上?
任何建议都将不胜感激,请让我知道我需要包括哪些进一步的信息。
答案 0 :(得分:4)
它会分别显示每个地图,因为您为每个标记打印图像。你想要的是一个URL,并为每个标记添加&markers=#{location.latitude}%2C#{location.longitude}
。
所以你的代码应该是这样的:
<% my_url = "http://maps.google.com/maps/api/staticmap?size=450x300&sensor=false&zoom=15" %>
<% @locations.each do |location| %>
<% my_url += "&markers=#{location.latitude}%2C#{location.longitude}" %>
<% end %>
<%= image_tag my_url %>
答案 1 :(得分:0)
Matej的回答是正确的,但是从帮助者那里调用它会更好。这样的事可能
def nice_gmap_static(location)
center = "#{location.latitude},#{location.longitude}"
"https://maps.googleapis.com/maps/api/staticmap?center=#{center}&size=300x300&zoom=17&markers=#{location.latitude}%2C#{location.longitude}"
end