Estoy usando ruby geocoder gem para mi proyecto y, a medida que el proyecto crece, estoy empezando a buscar conectarme a la clave API de Google. Después de agregar esto al proyecto:
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
Recibo un error de API de geocodificación de Google: solicitud denegada cuando inicio la aplicación Al leer, parece que otros cambian a Yahoo si eligen continuar usando la gema. ¿Puedo configurar la gema para que funcione con la clave de API de Google? Principalmente, me gustaría estar atento a la cantidad de consultas diarias para evitar superar el límite.
Respuestas
6 para la respuesta № 1Geocoder solo admite claves de API de Google para cuentas de Google Premier.
Se encuentra aquí en el archivo Léame en github: https://github.com/alexreisner/geocoder#google-google-google_premier
Si tiene una clave de API de Google Premier, solo tiene que ponerla en un intializador:
# config/initializers/geocoder.rb
Geocoder.configure(:lookup => :google_premier, :api_key => "...")
Y su Geocoder utilizará su clave principal.
2 para la respuesta № 2
crear un archivo: config / initializers / geocoder.rb y una configuración como esta:
Geocoder.configure(
:lookup => :google_premier,
:api_key=> ["api_key","client_id","client_id_type"],
)
2 para la respuesta № 3
Tuve este problema hoy y logré resolverlo configurando use_https
p.ej.
Geocoder.configure(
:timeout => 15,
:api_key => "YOUR_KEY",
:use_https => true
)
0 para la respuesta № 4
Geocoder funciona bien con el nivel gratuito de su API de mapas. Sin embargo, para que funcione, tuve que registrar una clave usando esta página específicamente.
https://console.developers.google.com/flows/enableapi?apiid=geocoding_backend&keyType=SERVER_SIDE
Y configurar la configuración
# config/initializers/geocoder.rb
Geocoder.configure(
api_key: "KEY_HERE",
use_https: true
)
-1 para la respuesta № 5
De manera predeterminada, Geocoder utiliza la API de geocodificación de Google para buscar coordenadas y direcciones de calles. Por lo tanto, creo que una clave API de Google debería funcionar en el inicializador.
Espero que este trabajo para ti.
-1 para la respuesta № 6
Geocoder.configure(
# geocoding service
lookup: :google,
# geocoding service request timeout (in seconds)
timeout: 3,
# default units
units: :km
)
Este trabajo para mi. Puede llamar a la API desde la consola de rails con geocoder doc en http://www.rubygeocoder.com/ que llamarlo desde la vista /my_map/show.html.erb reemplace la dirección o ciudad, etc. con <%= @place.address %>
-1 para la respuesta № 7
Si alguien todavía está mirando esto, para algunosmotivo por el cual la API de Google cambió y Geocoder ya no funciona con el archivo de configuración estándar. Sin embargo, simplemente no puede usar la gema Geocoder para geocodificación y geocodificación inversa (no use Geocoder.search) y usar cualquier gema de solicitud http para llamar directamente a la API de Google, a partir de este momento usando RestClient la llamada a la API sería
respuesta = RestClient.get "https://maps.googleapis.com/maps/api/geocode/json?address="+ sanitized_query +" & key = "+ your_key
donde la consulta desinfectada puede ser una dirección como "Cupertino, CA" o una cadena "lat = x, lng = y" para geocodificación o geocodificación inversa. No es necesario obtener una cuenta premier de Google.