2017-12-07 10 views
0

Ich verwende das Geocoder-Paket in Python, um die Koordinaten für eine Reihe von Adressen (etwa 30k) zu erhalten. Ich erhalte den folgenden Fehler:Geokodierung in Python

Status code Unknown from https://maps.googleapis.com/maps/api/geocode/json : ERROR - HTTPSConnectionPool(host='maps.googleapis.com', port=443): Max retries exceeded with url: /maps/api/geocode/json?address=Rancho+Palos+Verdes%2CCA%2CUS&bounds=&components=&region=&language= (Caused by ProxyError('Cannot connect to proxy.', timeout('timed out',)))

Die Anzahl der Male, die ich die Fehlermeldung reduziert, wenn ich die time.sleep(x) Funktion hinzufügen, aber es erhöht deutlich die Zeit genommen, um den Code auszuführen. Gibt es eine effizientere Möglichkeit, den Code auszuführen?

Es folgt ein Ausschnitt aus dem Code:

for add in clean_address: 
    g=geocoder.google(add) 
    time.sleep(7) 
    if(g.ok==True): 
     lat.append(str(g.lat)) 
     lon.append(str(g.lng)) 
    if(g.ok==False): 
     lat.append("") 
     lon.append("") 
+3

Googles geocode API ist nur frei bis zu einem bestimmten Betrag, Sie mehr als wahrscheinlich, dass und ratenbegrenzte bekommen. Wenn Sie mehr möchten, müssen Sie sich registrieren und für Ihr Volumen bezahlen. – tzaman

+0

Gibt es einen Grund, Google API zu verwenden? Du könntest arcgis api verwenden, die keine Beschränkung verwenden: g = geocoder.arcgis (add) – Lupanoide

+0

@Lupanoide - Danke für die Empfehlung von mir ArcGIS. Es ist genauer und schneller die Koordinaten für meine 31k-Datensätze zu bekommen. –

Antwort

0

Google API ein use limitation hat. Sie können jedoch auch die Geocoder-Bibliothek verwenden, die viele Geocoding-Dienste sammelt. Ich schlage vor, Sie verwenden die ArcGis api, die keine Beschränkung der Verwendung hat und sehr genau ist. Die Benutzung ist sehr einfach:

g=geocoder.arcgis(add) 
lat.append(g.x) 
lon.append(g.y) 
1

Ihre Adressen sind 30K und die Grenze ist 2,5K pro Tag.

Wie Google in den entsprechenden docs zitiert:

To use the Google Maps Geocoding API, you must register your app project on the Google API Console and get a Google API key which you can add to your app or website.

Nach Dabei these sind die Grenzen:

Users of the standard API:

  • 2,500 free requests per day, calculated as the sum of client-side and server-side queries.
  • 50 requests per second, calculated as the sum of client-side and server-side queries.
+0

Gibt es eine absteigende Polizei in S.O.? Ich muss jemanden verklagen. – raratiru

+1

keine Polizei. aber ich werde es für dich ausgleichen. Ich glaube, das beantwortet die Frage des OP – MattR

+1

Die Downvoters sind die Polizei (Teil davon sowieso). Keine Sorge, die Durchschnittsstatistik wird zu Ihren Gunsten ausfallen. +1 –

Verwandte Themen