2015-05-29 14 views
14

Sto usando il codice sottostante per ottenere la latitudine & longitudine di un indirizzo:non può importare nome GoogleMaps in python

from googlemaps import GoogleMaps 
gmaps = GoogleMaps(api_key) 
address = 'Constitution Ave NW & 10th St NW, Washington, DC' 
lat, lng = gmaps.address_to_latlng(address) 
print lat, lng 

ma sto ottenendo l'errore sotto

File "C:/Users/Pavan/PycharmProjects/MGCW/latlong6.py", line 1, in <module> 
    from googlemaps import GoogleMaps 
ImportError: cannot import name GoogleMaps 

ho visto un'altra domanda simile a questo, ma la soluzione non ha funzionato per me.

risposta

6

Usa geopy invece, senza bisogno di api-chiave.

dal loro esempio:

from geopy.geocoders import Nominatim 
geolocator = Nominatim() 
location = geolocator.geocode("175 5th Avenue NYC") 
print(location.address) 
print((location.latitude, location.longitude)) 

stampe:

Flatiron Building, 175, 5th Avenue, Flatiron, New York, NYC, New York, 10010, United States of America 
(40.7410861, -73.9896297241625) 
+1

questo codice sta funzionando bene per la singola posizione e quando sto passando più posizioni sto ottenendo tutte le latitudini e le longitudini stesse .. –

+1

questo sembra funzionare ora .. comunque ho bisogno di localizzare 44.000 località .. cercherò di metterle in un file e le passeremo .. –

+0

@PavanChakravarthy Non ho molta familiarità con la libreria ma sembrano avere una buona documentazione https: //geopy.readthedocs .org/it/1.10.0/ – Scott

3

Penso che quello che stai cercando sia la classe Client non GoogleMaps.

Se si desidera chiamare GoogleMaps importarlo come segue:

from googlemaps import Client as GoogleMaps

+1

fatto che e ora sto ottenendo questo errore file "C: /Users/Pavan/PycharmProjects/MGCW/latlong6.py", linea 2, in GMaps = GoogleMaps (api_key) NameError: nome 'api_key' è non definito –

+0

@PavanChakravarthy perché è necessario un api. Usa invece geopy. – Scott

+0

Hai definito il nome api_key? Sembra che tu non l'abbia fatto. –

4

Un'altra opzione è l'analisi del JSON da photon.komoot.de. Esempio:

import requests, json 

url = 'http://photon.komoot.de/api/?q=' 
addresses = ['175 5th Avenue NYC', 'Constitution Ave NW & 10th St NW, Washington, DC'] 

for address in addresses: 
    resp = requests.get(url=url+address) 
    data = json.loads(resp.text) 
    print data['features'][0]['geometry']['coordinates'] 

stampe:

[-76.1438449, 40.229888] 
[-77.046567, 38.8924587] 

Questi sono dati in lon, lat. Il secondo è un po 'fuori da circa 1 miglio. Sembra che le intersezioni stradali siano difficili.

3

potrei scrivere un codice per l'indirizzo multipla ma non ha mai funzionato .. finalmente trovato questo sito che potrebbe generare codici geografici in massa .. Penso che possa essere utile a qualcuno in cerca di geocodifica di massa .. Ha anche geocodifica inversa ..

http://www.findlatitudeandlongitude.com/batch-geocode/#.VW2KRs-qqkq

Problemi correlati