2015-01-17 2 views
1

Я пытаюсь иметь несколько маркеров на одной статической карте.Как иметь несколько маркеров на одной статической карте?

Я использую 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 %> 

Как я цикл через это таким образом, все маркеры показывает на один карты вместо карты для всех и каждого Долгота/широта?

Любые советы были бы оценены и, пожалуйста, дайте мне знать, какую дополнительную информацию мне нужно включить.

ответ

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 %> 
+0

P, эй, спасибо! Просто увидел ваш ответ и попробовал прямо сейчас. Сначала возникла проблема, но потом она работала после того, как я удалил все мои исходные записи. Они были рассеяны по всему миру. Работает лучше, когда он находится на одном континенте. Вздох. – user273072545345

0

Матей ответ правильный, но называть это с помощником будет лучше. Что-то вроде этого возможно

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 
Смежные вопросы