こんにちは、ヒガシです。
このページでは、Python上でGoogleMapAPIを操作し、指定した場所の郵便番号、緯度経度、住所を取得する方法をご紹介していきます。
googlemapsライブラリを使う方法とurllib.requestを使う方法の2通りで解説していきます。
それではさっそくやっていきましょう!
googlemapsライブラリを使う方法
まずはじめにgooglemapsライブラリを使った方法をご紹介します。
まずは以下のコードが通るようにライブラリをインストールしておきましょう。
import googlemaps
pip installl googlemapsでインストール可能です。
準備が整ったらコーディングに入りましょう。
今回は、東京駅の情報を取得してみます。
googleapikey = "YOUR API KEY"
gmaps = googlemaps.Client(key=googleapikey)
address = '東京駅'
result = gmaps.geocode(address)
print("郵便番号:" + result[0]["address_components"][-1]["long_name"])
print("緯度経度:" + str(result[0]["geometry"]["location"]))
print("住所:" + result[0]['formatted_address'])
こいつを実行すると以下の結果が出力されました。
web版googlemapの結果と比較してみましたが、完璧に一致していました。
というわけで問題なくデータを取得できましたね。
urllib.requestを使った場合
次はurllib.requestを使うパターンをご紹介します。
先ほど同様にまずはライブラリのインポートです。
import urllib.request
import urllib.parse
import json
こいつらはおそらく標準ライブラリなのでインストール不要で使えるはずです。
ではAPIを呼び出してみましょう。
googleapikey = "YOUR API KEY"
url="https://maps.google.com/maps/api/geocode/json?address="
place = "東京駅"
place_url = urllib.parse.quote_plus(place, safe='=&')
response = urllib.request.urlopen(url + place_url + '&key=' + googleapikey).read()
data = json.loads(response)
print("郵便番号:" + data["results"][0]["address_components"][-1]["long_name"])
print("緯度経度:" + str(data["results"][0]["geometry"]["location"]))
print("住所:" + data["results"][0]['formatted_address'])
こいつを実行すると以下の結果が出力されました。
いうまでもなく先ほどと全く同じ結果が出力されました。
おわりに
というわけで今回はPython上からGoogleMapAPIのgeocodeを使って東京駅の情報を抜き出すということをやってみました。
様々なアプリ開発に応用できそうですね。
今後もAPI関連でいろいろと遊んでみようと思います。
それではまた!
コメント