2012-07-31 15 views
16

Sto usando ruby ​​geocoder gem per il mio progetto e mentre il progetto sta crescendo, sto iniziando a esaminare la connessione alla chiave API di Google. Dopo aver aggiunto questo al progetto:La gemma di Geocoder funziona con la chiave API di 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 

Ho ricevuto errore di Google Geocoding API: richiesta negata. quando avvio l'applicazione. Dalla lettura in giro, sembra che gli altri passino a yahoo se decidono di continuare a utilizzare la gemma. Posso configurare la gemma per funzionare con la chiave API di Google? Principalmente, vorrei tenere d'occhio la quantità di query giornaliere per evitare di superare il limite.

+0

Stesso problema per me. Qualche soluzione per la fortuna? – Glenn

+1

No, usando yahoo adesso. – user527662

+0

Mi sono spostato in una ricerca geocoordinata di front-end, mentre mantenevo geocoder sul backend come ripiego. Controlla il mio commento su https://github.com/alexreisner/geocoder/issues/222#issuecomment-7857999 con i dettagli se sei interessato. – Glenn

risposta

-1

Per impostazione predefinita Geocoder utilizza l'API di geocodifica di Google per recuperare le coordinate e gli indirizzi. Quindi, penso che una chiave API di Google dovrebbe funzionare sull'inizializzatore.

Spero che questo lavoro per voi.

-1
Geocoder.configure(
    # geocoding service 
    lookup: :google, 

    # geocoding service request timeout (in seconds) 
    timeout: 3, 

    # default units 
    units: :km 
) 

Questo lavoro per me. È possibile chiamare API da console rotaie con geocoder doc presso http://www.rubygeocoder.com/ di chiamarlo alla vista /my_map/show.html.erb sostituire indirizzo o città ecc con <%= @place.address %>

6

Geocoder supporta Google chiavi API solo per gli account Google Premier.

sua trovato qui nel readme su github: https://github.com/alexreisner/geocoder#google-google-google_premier

Se si dispone di una chiave API di Google Premier non vi resta che mettere questo in un intializer:

# config/initializers/geocoder.rb 
    Geocoder.configure(:lookup => :google_premier, :api_key => "...") 

E la tua Geocoder userà il vostro premier chiave.

2

creare un file: config/inizializzatori/geocoder.rb e messa a punto in questo modo:

Geocoder.configure(
:lookup => :google_premier, 
:api_key=> ['api_key','client_id','client_id_type'], 
) 
2

ho avuto questo problema oggi e sono riusciti a risolverlo impostando use_https esempio

Geocoder.configure(
:timeout => 15, 
:api_key => "YOUR_KEY", 
:use_https => true 
) 
-1

Se qualcuno sta ancora guardando questo, per qualche motivo l'API di Google cambiato e Geocoder non funziona più con il file di configurazione standard. Tuttavia, non puoi semplicemente utilizzare la gemma di Geocoder per geocodifica e reverse geocoding (non utilizzare Geocoder.search) e utilizzare qualsiasi gemma richiesta http per chiamare direttamente google api, dal momento che usando RestClient la chiamata api sarebbe

risposta = RestClient.get 'https://maps.googleapis.com/maps/api/geocode/json?address=' + sanitized_query + '& chiave =' + your_key

dove interrogazione sterilizzata può essere un indirizzo come 'Cupertino, CA' o 'lat = x, y lng =' stringa per geocoding o geocoding inverso. Non è necessario ottenere un account Premier di Google.

Problemi correlati