partir obtener longitud latitud google geolocalizacion direccion python google-maps google-geocoding-api

python - obtener - API de GoogleMaps: dirección a coordenadas(latitud, longitud)



obtener latitud y longitud google maps javascript (3)

Esto me está volviendo loca. He borrado esta clave 1000 veces hasta el momento. Ayer funcionó como un encanto, hoy ya no más Aquí está el código python:

from googlemaps import GoogleMaps gmaps = GoogleMaps("AIzaSyBIdSyB_td3PE-ur-ISjwFUtBf2O0Uo0Jo") exactaddress ="1 Toronto Street Toronto" lat, lng = gmaps.address_to_latlng(exactaddress) print lat, lng GoogleMapsError: Error 610: G_GEO_BAD_KEY

Ahora está devolviendo el error anterior sin razones obvias. No creo que haya alcanzado el límite de solicitud o la tasa máxima. Para estar seguro, incluso introduje retrasos (1 seg) ... aún recibo el mismo error

¿Alguien tiene alguna idea de cómo puedo resolver esto? Tener que trabajar con un módulo de python diferente está bien si puede indicar una alternativa a la que estoy usando actualmente.

Gracias c

PD: la clave es válida, es una clave de cliente y se habilitó automáticamente cuando habilité GoogleMAP API3 en la consola de la aplicación. Sin restricciones para dominios o direcciones IP

EDITAR: Así que esto es lo que terminé usando

def decodeAddressToCoordinates( address ): urlParams = { ''address'': address, ''sensor'': ''false'', } url = ''http://maps.google.com/maps/api/geocode/json?'' + urllib.urlencode( urlParams ) response = urllib2.urlopen( url ) responseBody = response.read() body = StringIO.StringIO( responseBody ) result = json.load( body ) if ''status'' not in result or result[''status''] != ''OK'': return None else: return { ''lat'': result[''results''][0][''geometry''][''location''][''lat''], ''lng'': result[''results''][0][''geometry''][''location''][''lng''] }

La biblioteca a la que Jason me señaló también es interesante, pero dado que mi código tenía la intención de arreglar algo (uso de una sola vez), no he probado su solución. Definitivamente lo consideraré si consigo escribir código de nuevo :-)


Aunque Google desaprobó las llamadas V2 con googlemaps (por lo que está viendo las llamadas rotas), recientemente anunciaron que otorgan a los desarrolladores una extensión de seis meses (hasta el 8 de septiembre de 2013) para pasar de la API V2 a la V3. . Consulte la Actualización sobre geocodificación API V2 para obtener más detalles.

Mientras tanto, revisa pygeocoder como una posible solución de Python V3.


Hice algunos códigos de golf y terminé con esta versión. Dependiendo de su necesidad, es posible que desee distinguir algunas otras condiciones de error.

import urllib, urllib2, json def decode_address_to_coordinates(address): params = { ''address'' : address, ''sensor'' : ''false'', } url = ''http://maps.google.com/maps/api/geocode/json?'' + urllib.urlencode(params) response = urllib2.urlopen(url) result = json.load(response) try: return result[''results''][0][''geometry''][''location''] except: return None


Desde septiembre de 2013, Google Maps API v2 ya no funciona . Aquí está el código que funciona para API v3 (basado en esta respuesta ):

import urllib import simplejson googleGeocodeUrl = ''http://maps.googleapis.com/maps/api/geocode/json?'' def get_coordinates(query, from_sensor=False): query = query.encode(''utf-8'') params = { ''address'': query, ''sensor'': "true" if from_sensor else "false" } url = googleGeocodeUrl + urllib.urlencode(params) json_response = urllib.urlopen(url) response = simplejson.loads(json_response.read()) if response[''results'']: location = response[''results''][0][''geometry''][''location''] latitude, longitude = location[''lat''], location[''lng''] print query, latitude, longitude else: latitude, longitude = None, None print query, "<no results>" return latitude, longitude

Consulte la documentación oficial para obtener la lista completa de parámetros e información adicional.