Как добавить радиус к маркеру в Google-Maps-for-Rails? - PullRequest
0 голосов
/ 19 апреля 2011

Я использую гем Google-Maps-for-Rails и теперь пытаюсь отобразить круги.

Моя модель "Место" состоит из:

  • долгота
  • широта
  • Радиус
  • и т.д.

У меня нет проблем с отображением маркеров:

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

К сожалению, это не включает: radius => .. Я также знаю, что круги могут отображаться как:

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

Есть ли способ включить атрибут radius в хеш маркеров? Как:

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

Возможно что-то вроде:

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

будет делать, но я думаю, что может быть лучшее решение

1 Ответ

2 голосов
/ 20 апреля 2011

Логика маркеров и кругов действительно отличается.

В вашем контроллере

@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}
          }) %>
...