2011-04-27 150 views

Respuesta

11

Sugeriría usar Py-Googlemaps. Para usarlo es fácil:

from googlemaps import GoogleMaps 
gmaps = GoogleMaps(API_KEY) 
lat, lng = gmaps.address_to_latlng(address) 
+0

¿Es posible obtener las claves de la API que trabajan con esta biblioteca de más? Genere una clave de API de Javascript v3 pero parece que no funciona. – powerj1984

+2

Acaba de terminar usando esto en su lugar: http://code.xster.net/pygeocoder/wiki/Home – powerj1984

+0

Repo para OP: https://github.com/googlemaps/google-maps-services-python –

0

Este es el código que trabaja para Google Maps API v3 (basado en this answer):

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 

Ver official documentation para la lista completa de parámetros e información adicional.

0

El paquete de Python googlemaps parece ser muy capaz de hacer geocodificación y geocodificación inversa.

La última versión del paquete de googlemaps está disponible en: https://pypi.python.org/pypi/googlemaps

6

recomendaría encarecidamente utilizar geopy. Devolverá la latitud y longitud, luego podrá usarla en el cliente de Google JS.

>>> from geopy.geocoders import Nominatim 
>>> geolocator = Nominatim() 
>>> location = geolocator.geocode("175 5th Avenue NYC") 
>>> print(location.address) 
Flatiron Building, 175, 5th Avenue, Flatiron, New York, NYC, New York, ... 
>>> print((location.latitude, location.longitude)) 
(40.7410861, -73.9896297241625) 

Además se puede definir específicamente desea utilizar los servicios de Google mediante el uso de GoogleV3 clase como un geolocalizador

>>> from geopy.geocoders import GoogleV3 
>>> geolocator = GoogleV3() 
Cuestiones relacionadas