2012-07-31 11 views
16

Ich benutze Ruby Geocoder Gem für mein Projekt und während das Projekt wächst, beginne ich mich mit dem Google API Schlüssel zu beschäftigen. Nach Zugabe dieser zu dem Projekt:Funktioniert Geocoder mit Google API-Schlüssel?

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 

ich Google Geocoding API-Fehler: Antrag abgelehnt. wenn ich die Anwendung starte. Wenn man liest, scheint es so, als würden andere zu Yahoo wechseln, wenn sie den Juwel weiter benutzen. Kann ich den Edelstein so konfigurieren, dass er mit dem Google API-Schlüssel funktioniert? Hauptsächlich möchte ich nach den täglichen Anfragen Ausschau halten, um das Limit nicht zu überschreiten.

+0

gleiche Problem für mich einzurichten. Irgendwelches Glück lösen? – Glenn

+1

Nein, ich benutze gerade Yahoo. – user527662

+0

Ich wechselte zu einem geokoordinaten Front-End-Lookup, während ich immer noch den Geocoder im Backend als Fallback behalte. Sehen Sie sich meinen Kommentar auf https://github.com/alexreisner/geocoder/issues/222#issuecomment-7857999 mit Details an, wenn Sie interessiert sind. – Glenn

Antwort

-1

Standardmäßig verwendet Geocoder die Geocoding-API von Google zum Abrufen von Koordinaten und Straßenadressen. Also, ich denke, dass ein Google API-Schlüssel auf dem Initialisierer funktionieren sollte.

Ich hoffe, das funktioniert für Sie.

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

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

    # default units 
    units: :km 
) 

Diese Arbeit für mich. Sie können die API von der Rails-Konsole mit Geocoder doc unter http://www.rubygeocoder.com/ anrufen, als sie aus view /my_map/show.html.erb Adresse oder Stadt usw. mit <%= @place.address %> anrufen

6

Geocoder unterstützt Google API-Schlüssel nur für Google Premier-Konten.

Seine finden Sie hier in der Readme auf GitHub: https://github.com/alexreisner/geocoder#google-google-google_premier

Wenn Sie einen API-Schlüssel Google Premier brauchen Sie nur diese in einem intializer zu setzen:

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

Und Ihre Geocoder wird die erste verwenden Schlüssel.

2

erstellen Sie eine Datei: config/initializers/geocoder.rb und Setup wie folgt aus:

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

ich heute dieses Problem hatte und schaffte es zu lösen, indem use_https z.B.

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

Wenn jemand noch an diesem sucht, aus irgendeinem Grunde die Google API geändert und Geocoder funktionieren nicht mehr mit der Standard-Konfigurationsdatei. Allerdings können Sie den Geocoder einfach nicht zum Geocodieren und Reverse-Geocoding verwenden (verwenden Sie nicht Geocoder.search) und verwenden Sie ein beliebiges HTTP-Request-Juwel, um google api direkt aufzurufen. Ab diesem Zeitpunkt wird der API-Aufruf mit RestClient

sein

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

wo hygienisiert Abfrage entweder eine Adresse wie 'Cupertino, CA' oder einem 'lat = x, y lng =' string sein kann für Geocodierung oder umgekehrte Geocodierung. Es ist nicht notwendig, ein Google-Premium-Konto zu erhalten.

Verwandte Themen