ruby-on-rails - rails - google maps geocoder example
¿Geocoder gem funciona con la clave de Google API? (7)
De forma predeterminada, Geocoder utiliza la API de geocodificación de Google para obtener coordenadas y direcciones de calles. Entonces, creo que una clave API de Google debería funcionar en el inicializador.
Espero que este trabajo para ti.
Estoy usando la gema geocodificador de ruby para mi proyecto y, a medida que el proyecto va creciendo, estoy empezando a analizar la conexión con 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 el error de Google Geocoding API: solicitud denegada. Cuando empiezo la aplicación. Después de leer alrededor, parece que otros cambian a yahoo si deciden continuar usando la gema. ¿Puedo configurar la gema para que funcione con la clave de Google Api? Principalmente, me gustaría estar atento a la cantidad de consultas diarias para evitar superar el límite.
Geocoder admite las claves de Google APi solo para cuentas de Google Premier.
Se encuentra aquí en el archivo léame en github: github.com/alexreisner/geocoder#google-google-google_premier
Si tiene una clave de API Premier de Google, solo necesita poner esto en un intializer:
# config/initializers/geocoder.rb
Geocoder.configure(:lookup => :google_premier, :api_key => "...")
Y tu Geocoder usará tu clave principal.
Geocoder funciona bien con el nivel gratuito de su API de mapas. Sin embargo, para hacerlo funcionar, tuve que registrar una clave específicamente en esta página.
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
)
Si alguien todavía está viendo esto, por alguna razón, la API de Google cambió y Geocoder ya no funciona con el archivo de configuración estándar. Sin embargo, simplemente no puede utilizar la gema Geocoder para la geocodificación y la geocodificación inversa (no use Geocoder.search) y utilizar cualquier gema de solicitud http para llamar directamente a la API de Google.
response = 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.
Tuve este problema hoy y logré resolverlo configurando use_https
por ejemplo
Geocoder.configure(
:timeout => 15,
:api_key => "YOUR_KEY",
:use_https => true
)
cree un archivo: config / initializers / geocoder.rb y configure de esta manera:
Geocoder.configure(
:lookup => :google_premier,
:api_key=> [''api_key'',''client_id'',''client_id_type''],
)
Geocoder.configure(
# geocoding service
lookup: :google,
# geocoding service request timeout (in seconds)
timeout: 3,
# default units
units: :km
)
Este trabajo para mí. Puede llamar a la API desde la consola de Rails con el geocoder doc en http://www.rubygeocoder.com/ llamarla desde la vista /my_map/show.html.erb reemplazar la dirección o ciudad, etc. con <%= @place.address %>