Pythonのgooglemapsを用いて住所をジオコーディングすると課金を有効にするエラーが発生したことについて書きます。
今回はgooglemapsを用います。このライブラリ・モジュールは、Pythonの標準ライブラリではありませんので、事前にインストールする必要があります。
なお、今回は、Google Cloud PlatformでGeocodingAPIとDirectionsAPIを有効にしている状態で、「認証情報」で「GeocodingAPI」のAPIキー(認証情報)を作成し、APIキーを発行した。
■Python
今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)
■googlemapsを用いて住所をジオコーディングする
では、早速googlemapsを用いて住所をジオコーディングするスクリプトを書いていきます。
■コード
import googlemaps gmaps = googlemaps.Client(key='APIキー') geocode_result = gmaps.geocode('大阪市, JA') print(geocode_result)
今回は実験・検証としてgooglemapsモジュールをimportし、gmapsという変数を定義し、その中でgooglemaps.Client()を用いて、括弧内に引数,パラメータとして発行したAPIキーを渡す。
その後、geocode_resultという変数を定義し、その中でgmaps.geocode()を用いてジオコーディングを行い結果をgeocode_result変数に格納。
格納後、print()関数でgeocode_result変数内の情報を出力してみます。
■実行・検証
このスクリプトを「g_map.py」という名前で、Pythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。
Traceback (most recent call last): File "g_map.py", line 6, in geocode_result = gmaps.geocode('大阪市, JA') File "C:\Users\user_\AppData\Roaming\Python\Python38\site-packages\googlemaps\client.py", line 420, in wrapper result = func(*args, **kwargs) File "C:\Users\user_\AppData\Roaming\Python\Python38\site-packages\googlemaps\geocoding.py", line 75, in geocode return client._request("/maps/api/geocode/json", params).get("results", []) File "C:\Users\user_\AppData\Roaming\Python\Python38\site-packages\googlemaps\client.py", line 315, in _request result = self._get_body(response) File "C:\Users\user_\AppData\Roaming\Python\Python38\site-packages\googlemaps\client.py", line 344, in _get_body raise googlemaps.exceptions.ApiError(api_status, googlemaps.exceptions.ApiError: REQUEST_DENIED (You must enable Billing on the Google Cloud Project at https://console.cloud.google.com/project/_/billing/enable Learn more at https://developers.google.com/maps/gmp-get-started)
実行してみると、「googlemaps.exceptions.ApiError」というエラーが発生した。エラーの内容を確認してみると、「Google Cloud Project で課金を有効にする必要がある」というもので、課金を有効にしないと、ジオコーディングは使えないということがわかった。
コメント