2017-12-07 8 views
0

私はジオコーダーパッケージをPythonで使用して、一連のアドレス(約30k)の座標を取得しています。私は次のエラーを取得する: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',)))

私はtime.sleep(x)機能を追加しますが、それはかなりのコードを実行するのに要する時間が増加した場合、エラーが減少し、受信回数。コードを実行するより効率的な方法はありますか?続き

は、コードの抜粋です:

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

GoogleのジオコードAPIは無料の一定量までは、あなたはおそらくそれを超えると、レート制限取得しているです。あなたがもっと欲しいなら、サインアップしてあなたのボリュームを支払う必要があります。 – tzaman

+0

Google apiを使用する理由はありますか?あなたは制限を使用していないarcgis apiを使うことができます:g = geocoder.arcgis(add) – Lupanoide

+0

@Lupanoide - ArcGISのおかげでありがとう。その31kのレコードの座標を取得することで、より正確で高速です。 –

答えて

0

、GoogleのAPIはuse limitationがあります

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.

そうした後、theseは限界があります。しかし、多くのジオコーディング・サービスを収集するジオコーダー・ライブラリーを使用することもできます。私はArcGis apiを使用することをお勧めします。これは使用法に制限はなく、非常に正確です。 使い方は非常に簡単です:

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

あなたのアドレスは、30Kであり、上限は一日あたり2,5Kです。

Googleは、関連するdocsに引用したよう:

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

S.O.に下降警察はありますか?私は誰かを訴える必要がある。 – raratiru

+1

警察はありません。しかし、私はあなたのためにそれをバランスをとるでしょう。私はこれがOPの質問に答えていると信じています – MattR

+1

ダウンボッターは警察です(とにかくその一部です)。心配しないで、平均的な統計はあなたの好意で動くでしょう。 +1 –