

下記サイトの「urllibを使って特定の座標周辺の地図を画像として保存」を参考にプログラムを構築しました。html1とhtml2の部分を書き換え、google
api key を入れたのですが、`GeocoderError: Error OVER_QUERY_LIMIT`と表示されてしまいます。  
まだ一度もstack map apiを利用していません。  
改善策をお願いします。  
助けて下さい。

<https://www.robotech-note.com/entry/2016/12/21/213024>

エラーコード

[code]

    File "<ipython-input-2-e038d4def69f>", line 1, in <module>
        runfile('/Users/name/map.py')
    
      File "/Users/name/anaconda3/envs/python35/lib/python3.6/site-packages/spyder_kernels/customize/spydercustomize.py", line 668, in runfile
        execfile(filename, namespace)
    
      File "/Users/name/anaconda3/envs/python35/lib/python3.6/site-packages/spyder_kernels/customize/spydercustomize.py", line 108, in execfile
        exec(compile(f.read(), filename, 'exec'), namespace)
    
      File "/Users/name/map.py", line 19, in <module>
        results = Geocoder.geocode(address)
    
      File "/Users/name/anaconda3/envs/python35/lib/python3.6/site-packages/pygeocoder.py", line 129, in geocode
        return GeocoderResult(Geocoder.get_data(params=params))
    
      File "/Users/name/anaconda3/envs/python35/lib/python3.6/site-packages/pygeocoder.py", line 212, in get_data
        raise GeocoderError(response_json['status'], response.url)
    
    GeocoderError: Error OVER_QUERY_LIMIT
    Query: https://maps.google.com/maps/api/geocode/json?address=%E5%A4%A7%E9%98%AA%E5%9F%8E&sensor=false&bounds=&region=&language=&components=
    
[/code]

pythonコード

[code]

    from pygeocoder import Geocoder
    import urllib
    
    def download_pic(url,filename):
        img = urllib.urlopen(url)
        localfile = open( "./" + str(filename) + ".png" , 'wb')
        localfile.write(img.read())
        img.close()
        localfile.close()
    
    address = '大阪城'
    results = Geocoder.geocode(address)
    print(results[0].coordinates)
    
    result = Geocoder.reverse_geocode(*results.coordinates, language="ja")
    print (result)
    
    html1 = "https://maps.googleapis.com/maps/api/staticmap?center=34.687315,135.526201"
    html2 = "&maptype=hybrid&size=640x480&sensor=false&zoom=18&markers=34.687315,135.526201"
    html3 = "&key=APIKey&signature=signaturekey"
    
    axis = str((results[0].coordinates)[0]) + "," + str((results[0].coordinates)[1])
    
    html = html1 + axis + html2 + axis + html3
    
    print (html)
    
    download_pic(html,address)
    
[/code]

試したこと  
google stack map api
の使い方をグーグルのサイトで確認しましたところ、署名キーも入れましたし、料金設定も行い、使用条件は満たしていると思います。何かアドバイスお願いします。


CC BY-SA 4.0
2018-12-15T04:34:03.453
51226
2018-12-15T14:28:33.987
2018-12-15T05:10:19.250
3060
31266
question
python api anaconda spyder
python staticmap api GeocoderError: Error OVER_QUERY_LIMIT


>
> [https://maps.google.com/maps/api/geocode/json?address=%E5%A4%A7%E9%98%AA%E5%9F%8E&sensor=false&bounds=&region=&language=&components=](https://maps.google.com/maps/api/geocode/json?address=%E5%A4%A7%E9%98%AA%E5%9F%8E&sensor=false&bounds=&region=&language=&components=)

このURLでアクセスした時に返るレスポンスのエラーメセージは、次のとおりです。

"Keyless access to Google Maps Platform is deprecated. Please use an API key
with all your API calls to avoid service interruption. For further details
please refer to <http://g.co/dev/maps-no-account>"

つまり、APIキーが必要だということです。で、詳細は <http://g.co/dev/maps-no-account>
を参照して下さい、とのことなので、このページをよく読んで下さい。

APIキーを取得する方法を書いた日本語のブログもありました。少し古いですが、このページも参考になりそうです。

<https://nendeb.com/276>


CC BY-SA 4.0
2018-12-15T14:28:33.987
51234
2018-12-15T14:28:33.987
21092
51226
answer