今回の記事は「Google Map API」を利用してWebアプリなどに指定場所に対してのJson形式の「緯度」「経度」情報を取得させるための方法を記載します。ではまずは環境構築を行っていきます。
環境紹介
今回の Python環境などについてご紹介します。私の場合はdocker上に環境を構築していますローカルに Python環境を構築しても特に差はないようなので環境構築に関しては下記 PythonをインストールするのみでOKです。
Python:3.6.11
ちなみにdocker上で Pythonの環境を構築しjupyter notebookなどを開く方法に関しては下記の記事に記載しておりますので気になる方はご参照ください。
docker上で Python + jupyter notebookの環境を構築する方法
「Google Map API」のアカウント登録とAPIキー取得設定
まずは「google cloud API」でAPIキーを取得する必要があります。その手順を画像付きで記載していきます。まずはこちらのサイトよりアカウント登録などを行います。
アカウント作成の段階で写真を撮っておけばよかったのですがとりあえずページに入ってアカウント作成の表示があるはず下記ページまで進めればOKです。
「APIとサービス」をクリックすると「ダッシュボード」を開けるのでそちらを開きます。
初期状態では何も上記写真の赤丸の部分にグループが入っていない可能性があります。その場合は下記手順によってグループを作成します。
作成したプロジェクトを選択すれば画面が下記画面に遷移します。
今回はMaps JavaScript APIを使用しますのでこのAPIをクリック。下記にページ繊維します。
有効にしてください。下記にページに遷移します。
きちんとAPIの名称が正しいかを確認後、サイドバーの認証情報をクリックしてください。下記にページ遷移。
赤丸をつけ忘れてしまったのですが色の変わっている「APIとサービスの認証情報」をクリック。すると下記のページがこのページ上に表示されます。
以上で完了です。APIキーが発行されるので保存しておいてください。
「Google Map API」を利用して「緯度」「経度」情報をJson形式で取得する際のPythonコード
まずは「pip install」で下記をインストールしてください。
pip install pandas urllib googlemaps pygeocoder
インストールは特に問題ないと思われます。次に実行するコードを記載します。
import pandas as pd
import urllib
import urllib.error
import urllib.request
# Google API モジュール
from pygeocoder import Geocoder
import googlemaps
googleapikey = '[ここに取得したAPIキーを記載(例:AIz...)]'
# リストの初期化
location = []
# リストに場所や地名を追加する
location = ["東京都","京都府","沖縄県"]
# リストの表示
print(location)
# geocodeで取得できる情報の一覧の例(国会議事堂の場合)
gmaps = googlemaps.Client(key=googleapikey)
for name in location:
result = gmaps.geocode(name)
print(name)
print(result[0]["geometry"]["location"])
root@113d1c31e3ee:/# python geo.py
['東京都', '京都府', '沖縄県']
東京都
{'lat': 35.6761919, 'lng': 139.6503106}
京都府
{'lat': 35.1566609, 'lng': 135.5251982}
沖縄県
{'lat': 26.1201911, 'lng': 127.7025012}
root@113d1c31e3ee:/#
解説としては「googleapikey」で上記内容で取得したAPIキーを読み込んでいます。あとはコード上にも書いている通りです。
名前のみで緯度と経度を取得できるのでかなり便利です。使い方は無限にあります。今回はjsonデータを指定して表示していますが、全容を知りたい方はこちらをprintさせてください。「result = gmaps.geocode(name)」
以上で今回の記事は終了です。他にも色々と Python関連にとどまらず記事を書いておりますのできになる方はご参照ください。
コメント