Работает ли Geocoder gem с ключом API Google?
Я использую рубиновый геокодер для моего проекта, и по мере роста проекта я начинаю изучать подключение к ключу API Google. После добавления в проект:
Geocoder.configure do |config|
# geocoding service (see below for supported options):
config.lookup = :google
# to use an API key:
config.api_key = 'my_key'
# geocoding service request timeout, in seconds (default 3):
config.timeout = 5
end
Я получаю ошибку API геокодирования Google: запрос отклонен. когда я запускаю приложение. От чтения вокруг, кажется, что другие переключаются на yahoo, если они предпочитают продолжать использовать драгоценный камень. Могу ли я настроить gem для работы с ключом google api? В основном, я хотел бы следить за количеством ежедневных запросов, чтобы избежать превышения лимита.
Ответы
Ответ 1
Геокодер поддерживает только ключи Google api для учетных записей Google Premier.
Его найдено здесь в readme on github: https://github.com/alexreisner/geocoder#google-google-google_premier
Если у вас есть ключ от Google Premier api, вам просто нужно поместить его в intializer:
# config/initializers/geocoder.rb
Geocoder.configure(:lookup => :google_premier, :api_key => "...")
И ваш геокодер будет использовать ваш главный ключ.
Ответ 2
создать файл:
config/initializers/geocoder.rb и настроить следующим образом:
Geocoder.configure(
:lookup => :google_premier,
:api_key=> ['api_key','client_id','client_id_type'],
)
Ответ 3
У меня была эта проблема сегодня, и мне удалось ее решить, установив use_https
например.
Geocoder.configure(
:timeout => 15,
:api_key => "YOUR_KEY",
:use_https => true
)
Ответ 4
Геокодер отлично работает со свободным уровнем их API карт. Однако, чтобы заставить его работать, мне пришлось зарегистрировать ключ, используя эту страницу специально.
https://console.developers.google.com/flows/enableapi?apiid=geocoding_backend&keyType=SERVER_SIDE
И настройте конфигурацию
# config/initializers/geocoder.rb
Geocoder.configure(
api_key: 'KEY_HERE',
use_https: true
)
Ответ 5
По умолчанию геокодер использует API геокодирования Google для извлечения координат и адресов улиц. Итак, я думаю, что ключ API Google должен работать на инициализаторе.
Я надеюсь, что эта работа для вас.
Ответ 6
Geocoder.configure(
# geocoding service
lookup: :google,
# geocoding service request timeout (in seconds)
timeout: 3,
# default units
units: :km
)
Эта работа для меня. Вы можете вызвать API из консоли rails с doc geocoder в http://www.rubygeocoder.com/, чем вызвать его из представления /my _map/show.html.erb заменить адрес или город и т.д. с <%= @place.address %>
Ответ 7
Если кто-то все еще смотрит на это, по какой-то причине API Google изменился, и Geocoder больше не работает со стандартным конфигурационным файлом. Тем не менее, вы можете просто не использовать Geocoder gem для геокодирования и обратного геокодирования (не использовать Geocoder.search) и использовать любой камень HTTP-запроса для прямого вызова google api, с этого момента с использованием RestClient вызов api будет
response = RestClient.get 'https://maps.googleapis.com/maps/api/geocode/json?address=' + sanitized_query + '& key =' + your_key
где дезинфицированный запрос может быть либо адресом, как "Cupertino, CA", или "lat = x, lng = y" для геокодирования или обратного геокодирования. Нет необходимости получать основную учетную запись Google.