поиск геокодера - PullRequest
       1

поиск геокодера

2 голосов
/ 24 марта 2011

Я использую этот красивый рельс: https://github.com/alexreisner/geocoder

Пользователь входит в свое местоположение и говорит "Сан-Франциско". Это сохраняется в атрибуте объекта place. Затем геокодер выбирает координаты, а затем с координатами получает полный адрес.

Модель:

geocoded_by :place
after_validation :fetch_coordinates
after_validation :set_label

reverse_geocoded_by :latitude, :longitude
after_validation :fetch_address

Это все отлично работает. Но я бы хотел настроить окончательный формат. Если кто-то входит в «Сан-Франциско», геокодер добавляет по адресу: «1601-1645 Market St, Сан-Франциско, Калифорния 94103, США». Как я могу изменить это, чтобы сохранить как Сан-Франциско, Калифорния, США

1 Ответ

3 голосов
/ 24 марта 2011

Я должен сначала попросить моего ответа, я не использую этот драгоценный камень. При просмотре документации похоже, что вы можете получить то, что вы хотите, передав блок reverse_geocoded_by:

reverse_geocoded_by :lat, :lon do |obj,geo|
  obj.city    = geo.city
  obj.zipcode = geo.postal_code
  obj.country = geo.country_code
end
after_validation :reverse_geocode

Более подробная информация содержится в разделе «Расширенное геокодирование».

С вашим фрагментом кода, я думаю, вы хотите что-то похожее на:

reverse_geocoded_by :latitude, :longitude do |obj,geo|
  obj.address  = [geo.city, geo.state, geo.country_code].join(",")
end
after_validation :reverse_geocode

Я думаю, что доступность города / штата / страны зависит от геокодера, который вы настроили для использования гема. Вы можете посмотреть в https://github.com/alexreisner/geocoder/tree/master/lib/geocoder/results, чтобы увидеть, что заполняется для каждого геокодера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...