Работает ли 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.