Google Maps Platform内に含まれるDirections apiを使うことでルート検索時の結果を取得できるっぽい。
実際に経路検索データを取得した過程と取得できたjsonファイルの中身まとめをリアルタイムで更新しています。
確認できていない内容もありますがそこはご容赦ください。
api keyの取得方法が済んでいる前提で話を進めていきたいと思います。
開発環境はmacOS mojave(10.14.4)です。
データの取得
今回はjupyter notebookを使ってデータを取得して確認しました。
内容を表示するだけなのでライブラリはrequestsのみを使用したシンプルなコードになっています。
requestsが入っていなかったらpip等でインストールしておいてください
pip install requests
以下コード。今回は東京駅から皇居までの道のりを調べてみます。
パラメータはorigin(出発地点),destination(到着地点),key(api key)が必須です。
他のパラメータについては公式サイトを確認してください(https://developers.google.com/maps/documentation/directions/intro?hl=ja)
時間がパラメータもまとめたい。
path="https://maps.googleapis.com/maps/api/directions/json" #apiリンク
#keyは自身が取得したapi keyを入力
params={"origin":"東京駅","destination":"皇居","key":"api"}
return=requests.get(path,params=params)
returnの値を確認してみます。200ならGETできてる。うまくいかなかったらURL, keyあたりを確認してください。
return
<Response [200]>
jsonファイルの中身を確認。余談だけどいつもjsonの後にかっこをつけ忘れます。
return.json()
{'geocoded_waypoints': [{'geocoder_status': 'OK', 'place_id': 'ChIJC3Cf2PuLGGAROO00ukl8JwA', 'types': ['establishment', 'point_of_interest', 'subway_station', 'train_station', ...
どじゃっと値が取得できていることが確認できました。
jsonファイルの中身
上の項で取得したjsonファイルは以下の3つのステータス?に値が格納されてます。
- geocoded_waypoints : origin,distinationに検索ワード(?)を入れた場合にジオコーディングした結果を返してくれるorigin,distinationの結果が配列内にjson形式で格納されている
- routes : 出発地点から到着地点までの経路と諸々の情報を格納してくれてる。詳細は後述
- status : 検索結果のステータス。OKとかZERO_RESULTの文字列が返ってくる。詳細は要確認
geocoded_waypointsとstatus値を実際に確認してみます。
geocoded_waypoints
[{'geocoder_status': 'OK', 'place_id': 'ChIJC3Cf2PuLGGAROO00ukl8JwA', 'types': ['establishment', 'point_of_interest', 'subway_station', 'train_station', 'transit_station']}, {'geocoder_status': 'OK', 'place_id': 'ChIJTQbYAg2MGGARt22eNwtfGtE', 'types': ['establishment', 'park', 'point_of_interest', 'premise']}]
0番目の配列に東京駅の情報が、1番目の配列に皇居の情報が格納されています。ジオコーディングした緯度経度は取得できないみたい?
続いてstatus
status
'OK'
経路探索結果を文字列で取得できます。
routes
routesですが経路ごとに配列に詳細がjson形式で格納されています。
- bounds : 表示するマップの右上と左下を格納しているっぽい?要確認
- copyrights : googleさんの著作物であることが文字列で格納されています。
- legs : 距離、時間、始点及び終点の住所と緯度経度、経路が格納
- overview_polyline : ルート検索用パス
- summary : google map上で検索した時に表示される経路のまとめが文字列で格納
- warnings : 要確認。
- waypoint_order 要確認。
まとめ
経路情報を処理して何かしたいなら基本的にroutes内のlegsに格納されている情報で事足りそう。
今日中に全部まとめ終えるように頑張ります。