俺のOneNote

俺のOneNote

データ分析が仕事な人のOneNote愛とか、分析小話とか。

Google Map API を利用した Python によるジオコーディング

いろんなデータを漁ってると、住所だけの情報を扱うことがでてきます。
よほど整備されたデータでない限り、緯度・経度なんてついてないことが多い。。。

私は地理データが大変苦手なんですが、どうしても正確な位置情報をダッシュボード上にプロットする必要があったので、
Pythonでジオコーディングします。

ググってみると色々やり方はあるようなのですが、
既にエラーで出来ないコードも多かったので、確実なGoogle Map APIgooglemapsを使った方法にします。

Google Map API の使用

GCPでGeocoding APIを取得するだけの作業です。
ソースは以下のような詳しいサイトがたくさんあるので、これらに従えば大丈夫です。

nendeb.com

取得できたらAPIキーをコピっておきます。

f:id:kopaprin:20200508005450p:plain

Python

利用するのは googlemaps です。

github.com

試しにマイホームタウンの横浜市役所の住所をぶちこんでみます。

#!pip install googlemaps
import googlemaps

googleapikey = 'ここにAPIキーを入れる'
gmaps = googlemaps.Client(key=googleapikey)

gmap_list = gmaps.geocode("横浜市中区港町1-1")

ll = gmap_list[0]["geometry"]["location"]
print("Latitude : ",ll["lat"])
print("Longitude : ",ll["lng"])

無事、緯度経度を取得できたようです。

f:id:kopaprin:20200508010312p:plain

実際に横浜市役所の位置か検証します。

先生!ばっちりでありんす!

これで適当にリストで住所をながせば、緯度経度情報が簡単に揃えられそうです。
APIの使用制限や料金はちゃんと検討しないと・・・。まだ詳しくないです。すみません。

ちょっとだけ、地理データと仲良くなれた気がしたデータ遊びでした。