gmaps4rails отображает местоположение на основе широты и долготы - PullRequest
4 голосов
/ 09 августа 2011

Я использую gmaps4rails с Rails 3.0.9. Я хотел бы добавить маркер на основе координат широты и долготы к карте, но я не могу понять, как мне это сделать. Мне удалось использовать карту только с андрессом. Спасибо.

Код, который я использую:

приложение / модели / location.rb

class Location < ActiveRecord::Base
  acts_as_gmappable :process_geocoding => false

  def gmaps4rails_address
    "#{self.latitude}, #{self.longitude}"
  end
end

приложение / контроллеры / locations_controller.rb

def index
@json = Location.first.to_gmaps4rails

respond_to do |format|
  format.html
end

приложение / просмотров / места / index.html.erb

<%= gmaps4rails(@json) %>

Модель location содержит следующие поля: latitude, longitude, address.

ОБНОВЛЕНИЕ: Я нашел решение после прочтения еще раз вики проекта о маркерах. Решение состоит в том, чтобы использовать пользовательский метод <%= gmaps %>. Мне удалось использовать это так:

<%= gmaps({
    "map_options" => { "type" => "ROADMAP", "center_longitude" => 28.9, "center_latitude" => 47.03, "zoom" => 12, "auto_adjust" => true},
    "markers" => { "data" => @markers }
    })
    %>

В контроллере:

@markers = '[
             {"description": "", "title": "", "sidebar": "", "lng": "28.8701", "lat": "47.0345", "picture": "", "width": "", "height": ""},
             {"lng": "28.9", "lat": "47" }
            ]'

Вы можете настроить эти значения по своему усмотрению.

1 Ответ

0 голосов
/ 27 августа 2012

Я думаю, вы должны попробовать geocoder gem вместо gmaps4rails https://github.com/alexreisner/geocoder http://www.rubygeocoder.com/

Я думаю, что это намного лучше, чем gmaps4rails

...