Geokit возвращает результаты на английском языке по сравнению с другими языками

Я только что попытался геокодировать простой адрес «Токио» с помощью Geokit 1.6.0, и геокодер вернул 東京都 вместо «Токио».

Как я могу сделать так, чтобы геокодер всегда выдавал результаты на английском языке?


person sscirrus    schedule 21.09.2012    source источник
comment
Вы используете github.com/imajes/geokit? Не могли бы вы опубликовать пример кода? Что возвращает Geokit::Geocoder.provider_order?   -  person rossta    schedule 21.09.2012


Ответы (1)


Geokit не позволяет вам указать параметр языка (даже если используемый вами провайдер может его принять). Если вы используете Google для своего провайдера, вы можете как минимум переопределить метод do_geocode, чтобы принять параметр языка (пример здесь).

В качестве альтернативы я предлагаю использовать гем Geocoder:

$ gem install geocoder
$ geocode 'Tokyo'
Latitude:         35.6894875
Longitude:        139.6917064
Full address:     Tokyo, Japan
City:             
State/province:   Tokyo
Postal code:      
Country:          Japan
Google map:       http://maps.google.com/maps?q=35.6894875,139.6917064

По умолчанию гем Geocoder использует API геокодирования Google, а языком по умолчанию является английский. Но Geocoder выбирает язык. Попробуем по-русски:

$ geocode -l ru 'Tokyo'
Latitude:         35.6894875
Longitude:        139.6917064
Full address:     Токио, Япония
City:             
State/province:   Токио
Postal code:      
Country:          Япония
Google map:       http://maps.google.com/maps?q=35.6894875,139.6917064

Вот список языков и языковых кодов, которые поддерживает API геокодирования Google.

person Patrick Berkeley    schedule 22.09.2012