スクリーンショット_2018-10-15_16

Directions APIさわってみた

どうも僕です。秋田からお届けします。Google Mapの話です。

今日のお昼ぐらいにこんなニュース↓を見かけました。

特に都心部の方が「何を言ってるんだコイツは…?」となりそうなので軽く説明しておくと。

Google Mapのルート検索ありますよね。徒歩なり電車なり車なりで目的地までどんくらい時間かかる〜とかどんな経路でいけばいいのか〜とか調べることできますよね。もちろん秋田でもそれはできます。ただ

バス含めたルートが一切探せなかったんですよ。今の今まで。

平成が終わろうとしているこの時代にバス使ったルートがGoogleMapで探せない…?しかもコンビニ一つないド田舎の話ではなく人口30万人の県庁所在地で…?まじかよって感じですがマジなのでしょうがない。

でもそれがようやくできるようになったというのが上のニュースのお話。

で、ここまでが前提です。

バスを使ったルート検索が出来るようになったのをGoogle Maps APIでも確かめてみよう

ということで早速やってみましょう。今回は経路に関するデータを取得できる「Directions API」を使います。はじめて触ります。やってみよう。

Web APIとは?
厳格な定義はないが、広義にはHTTPプロトコルを用いてネットワーク越しに呼び出すアプリケーション間、システム間のインターフェースのこと。
(中略)
スマホアプリがサーバと通信をする場合、Web APIを利用するケースが最も一般的である。

引用:Web APIとは何なのか|Qiita

Directions APIの準備

とりあえず(面倒なので)プログラムは書かず、シンプルにAPIを叩いてJSONをどれどれと覗いてみることにします。

Directions APIを使うにはGCPのコンソールのAPIライブラリから検索して「Directions API」を有効にするだけでOK。簡単っすね。

既に他のAPIを使用している場合は不要ですが、はじめての方はAPIキーを取得する必要があります(手順は割愛)。

APIを叩いてみる(必須パラメータは何か?)

Directions APIのリクエストに必須なパラメータは以下3つ。APIキーはまぁ必須として要は「出発地」「行き先」の2つを指定すればOKのようです。

========================

● origin・・・ルートを計算する住所、テキストの緯度/経度の値、または場所ID。要するに「出発地」

● destination・・・ルートを計算する住所、テキストの緯度/経度の値、または場所ID。要するに「行き先」

● keys・・・APIキー

========================

で、リクエストの例が以下(Google様のサンプルまま)。YOUR_API_KEYの部分を自分のAPIキーに変更して叩けばレスポンスを確認できます。

https://maps.googleapis.com/maps/api/directions/json?origin=Disneyland&destination=Universal+Studios+Hollywood&key=YOUR_API_KEY

実際にAPIを叩いてみよう

とりあえず秋田用(+日本向け)にURIを変更しました。

https://maps.googleapis.com/maps/api/directions/json?origin=place_id:ChIJU49AUZLCj18RLQ-0Ko9_Wzw&destination=place_id:ChIJpYqBc3LBj18RO4KG0H4W_Cg&key=YOUR_API_KEY&language=jp&region=jp

APIを叩くと以下のようにブラウザに結果が返ります。余談ですがJSON見る時はChromeよりもFireFoxの方が見やすくて好き。

見づらいのでちょっとアップにしました。

〜 中略 〜

公共交通機関経由のルートを検索したい場合はパラメータ「mode=transit」を指定する

早速中身をじっくり見てみようかと思ったんですが、どうやらデフォルトでは「Driving」つまり車を使った結果(経路)が返る仕様のようですね。

ここに書いてました。

【Google翻訳まま】
mode(デフォルト値driving) - ルートを計算するときに使用する輸送モードを指定します。有効な値とその他のリクエストの詳細は、旅行モードで指定されています 。

詳しくはTravel Modesを見てねーということなので見てみます。

ふむふむなるほどー。

詳しくはこちらを見ていただくとして、公共交通機関を経由したルートを調べたい場合は「transit」を指定してね、とのこと。

ということでリクエストにパラメータを追加しました。

https://maps.googleapis.com/maps/api/directions/json?origin=place_id:ChIJU49AUZLCj18RLQ-0Ko9_Wzw&destination=place_id:ChIJpYqBc3LBj18RO4KG0H4W_Cg&mode=transit&key=AIzaSyAKdn8K99mgPCv5uVw-lnVu1fpRQ7V9FdQ&language=jp&region=jp

で結果がこちら(一部抜粋)。

DRIVING(車)のみの結果だったのが、WALKING(徒歩)とTRANSIT(公共交通機関)を使ったルートに変わりました!

バスも使った経路も含まれていますし日本円で料金も確認できます。今度は意図したJSONが取得できてそうです(^ω^)

…と、いい感じのところまできてもうちょっと詳しく見ていきたいところですが、ちょっと長くなってしまったのでとりあえず今回はここまで。

続きはまた気が向いたときにでも。

焼肉たべたい