что такое объект для геокодирования и массив объектов Geocoder::Result в геме геокодера

Я пытаюсь использовать гем геокодера, но запутался при использовании обратного геокодирования.

У меня есть модель «регион» с полями: страна, штат, город и почтовый индекс.

Если пользователь заполняет только почтовый индекс, я хочу автоматически заполнить все остальные поля.

reverse_geocoded_by :latitude, :longitude do |obj,results|
  if geo = results.first
    obj.city    = geo.city
    obj.zipcode = geo.postal_code
    obj.country = geo.country_code
  end
end
after_validation :reverse_geocode

но не могу понять, что такое объект и результат и как установить объект и результат.

пожалуйста, помогите мне, приведя пример.


person Adt    schedule 31.03.2015    source источник


Ответы (1)


я написал блог, объясняя, как это работает .вам необходимо выполнить геокодирование и получить соответствующую информацию от geocoder драгоценного камня.

Пользователь вводит адрес с помощью Geocomplete и сохраняет этот адрес в столбце адреса в таблице пользователей/местоположений. Затем используйте Geocoder для получения другой географической информации и обновления других столбцов с использованием адреса.

Вот оно...................

================ таблица пользователей/местоположений, здесь я буду использовать разрешение пользователя вводить адрес с помощью Geocomplete, а затем использовать его для получения других сведений с помощью Geocoder< /сильный>

class CreateLocations < ActiveRecord::Migration
  def change
    create_table :places do |t|
      t.string :address
      t.float :latitude
      t.float :longitude
      ##======here the address field is important==========
      t.string :address
      t.string :country
      t.string :state
      t.string :city
      t.string :pincode
      t.timestamps
    end
    add_index :places, :address
  end
end

==================Геокод для автоматического заполнения с использованием адреса в модели пользователей/местоположений

##i want to use the address column to autopopulate others columns
geocoded_by :address
##also i want to use the latitude.longitude to fetch all others informations and then save in relevant ##feilds
reverse_geocoded_by :latitude, :longitude do |obj,results|
  if geo = results.first
    obj.state    = geo.state
    obj.city    = geo.city
    obj.pincode = geo.postal_code
    obj.country = geo.country
  end
end

##изменить/обновить/проверить адрес только в том случае, если адрес был изменен для повышения производительности, иначе каждый раз, когда он ##будет обновляться

after_validation :geocode, :reverse_geocode ,:if => :address_changed?
person Milind    schedule 31.03.2015
comment
Спасибо, это именно то, что мне нужно - person Adt; 31.03.2015