2011-10-04 3 views
7

Google MapsのAPIにアドレスを送信し、LatとLngを受け取るスクリプトを作成しました。ただし、20件程度のクエリの後にGoogleのレート制限を超えたというエラーメッセージが表示されます。私が考えていないものはありますか?GoogleマップAPIのヒット率の上限ですが、理由はわかりません

ご協力いただきありがとうございます。私はAPIを使用することで非常に新しいので、なぜ私はレートの制限を打つのは非常に便利だろうと理解しています。

Locationという名前のcsvファイルからアドレスを読み取った後、以下は関連コードです。

for row in locations: 
     address = 'XXX, New Haven, CT' 
     first = re.search('^(.*),',row[0]) 
     address = re.sub('XXX',first.group(), address) 
     lat, lng = gmaps.address_to_latlng(address) 

私のエラーメッセージは以下のとおりです。

Traceback (most recent call last): 
    File "<input>", line 5, in <module> 
    File "/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/googlemaps-1. 
    0.2-py2.7.egg/googlemaps.py", line 310, in address_to_latlng 
     return tuple(self.geocode(address)['Placemark'][0]['Point']['coordinates'][1 
    ::-1]) 
     File "/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/googlemaps-1. 
    0.2-py2.7.egg/googlemaps.py", line 262, in geocode 
     raise GoogleMapsError(status_code, url, response) 
    GoogleMapsError: Error 620: G_GEO_TOO_MANY_QUERIES 

答えて

8

gmaps.address_to_latlng呼び出しは、Googleのサーバーにリクエストを送信し、あなただけのこれらの限られた数を作ることができます。 usage limits

Googleのドキュメント:

GoogleのジオコーディングAPIの使用は一日あたり2,500ジオロケーションリクエストのクエリ制限の対象となります。 [...]さらに、サービスの悪用を防ぐために要求レート制限を適用します。

そしてdocs on G_GEO_TOO_MANY_QUERIES

与えられたキーは、24時間以内にリクエストの制限を超えてしまったか、または時間の短すぎる期間であまりにも多くの要求を提出しました。並列またはタイトループで複数のリクエストを送信する場合は、タイマーを使用するか、コードを一時停止してリクエストをあまりにも早く送信しないようにします。

だから、彼らはあなたがする言うだけで何の操作を行います。あなたが許可される要求が不足しないよう

import time 

# And then in the loop, pause: 
time.sleep(1) 

は、適切な秒数に「1」を調整してください。

+4

ちょうど今ここにそれを読んだ後、そこに私の結論です。 –

+4

1日の上限値2500の上限は、35秒ごとに1つです。 – Omnifarious

+1

これは私の問題を完全に解決しました、ありがとう!私は誤って毎日の制限があると仮定しました。誰かが不思議に思っていた場合は、1秒の遅延が問題なく働いたので、1 /秒以上のレートが可能です。 – Kevin

2

私は、(私のような)ほとんどのpeopeが '1日あたりのページ数'とは異なる 'リクエストレート制限'について語っているgoogle map apiの部分を省略していることを認識しています。

したがって、「要求レート制限」は1秒あたり10要求です。

そうに基づいて、そのあなたは20のスタティックマップのページを表示し...、エンドユーザは、高速インターネット接続を持っている場合(多分?)... GoogleマップAPIへのそれらの20個の要求

1秒後に速く起こります...

これにより、あなたは彼らのライルを壊し、画像表示をブロックします。

これは、私はおそらくここにヒットされている限度である毎秒10のリクエストの上限は、もあると思い幸運

関連する問題