はじめに
Google Maps Platform の Directions API を使うための準備について投稿します。初期設定~ブラウザでのテストまでを記載しています。
2022年6月時点の情報になります。
Google Maps Platform とは
GoogleマップのAPI群です。カスタマイズしたマップの埋め込みや距離の取得など、Googleマップの情報を様々に応用できるサービスです。
料金
1つのアカウントにつき、月$200までは無料で利用できます。その上限を超えると、使った分だけ料金が請求されます。
セットアップ方法
流れは以下の通りです。
- Google Cloud Platformへのログイン
- プロジェクトの作成
- 請求先アカウントの作成
- APIキーの発行
公式スタートガイドはこちらです。
Google Cloud Platform へのログイン
以下にアクセスします。
Googleアカウントでログイン。もしアカウントがなければ新規作成します。
プロジェクトの作成
最初は「My First Project」というプロジェクトが自動で作成されます。プロジェクト単位でAPIを管理することができ、新たに作ることもできます。ここでは「My First Project」を使用していきます。
請求先アカウントの作成(課金の有効化)
最初は無料トライアルを始める、という形になります。
無料トライアルを含め、APIを利用するためには請求先を登録する必要がありますが、この時点ですぐに課金されることはありません。
3/3 最後に支払い情報を登録します。カード情報を入力すると住所入力欄も表示されます。
APIキーの発行
続いて実際にAPIを使えるようにしていきます。初回に画像のポップアップが出ると思います。黒く塗ってある部分がAPIキー(後述)です。
「デモを作成」をクリックして先に進みます。
APIキーの保護(後述)はいったん「後で」をクリックします。
以下のメッセージが出れば準備完了です。
とりあえずテストしてみたい場合は、こちらの項目に飛んでください。
APIキーとは
APIを利用するアカウントを識別する一意の文字列です。APIを呼び出す際のリクエストにこのキーを必ず含める必要があり、これをもとに使用量が集計され課金されます。単なる文字列のため呼び出し元等を制限しないと、第三者からの不正利用を許してしまいます。そのため、上記でAPIキーの保護を推奨するポップアップがありました。
APIキーの保護① アプリケーションの制限
試しに呼び出し元を自分のIPアドレスで制限してみましょう。制限することで、そのIPアドレスからしかAPIを呼び出せなくなります。
IPアドレスでの制限は、IPアドレスが変わる度に以下の設定が必要になります
コンソールの「認証情報」をクリックすると発行されたAPIキーが確認できます。右側の鉛筆マークをクリックします。
以下の編集画面に移動したら、「アプリケーションの制限」で「IPアドレス」を選びます。
自分のIPアドレスを入力して「完了」をクリックします。IPアドレスはこちらのようなサービスで調べられます。
以上でIPアドレスによる制限は完了です。
APIキーの保護② APIの制限
APIキーで呼び出せるAPIを限定しておく設定です。Directions API のみを呼び出せるようにしてみます。
先ほどのIPアドレスの入力欄の下に「APIの制限」がありますので、「キーを制限」をクリックします。
その下のプルダウンメニューで「Directions API」にチェックを付け、「OK」をクリックします。
詳細
APIキーの保護については、以下でより詳しく解説されています。
使用量の制限
誤って大量のリクエストをして多額の料金が請求されないように、APIの使用量(リクエスト数)の上限を設定しておきます。
Directions API を無料枠\$200内で済ませる場合、リクエスト1,000回あたり$5(料金表)なので、1日あたりのリクエスト上限は1,290回(=40,000÷31)になります。
設定は「割り当て」タブから行います。
「Requests」を展開し、「Requests /日」の鉛筆マークをクリックします。
割り当て上限の「無制限」からチェックを外し、上限値を入力します。もし画面のような注意書きが出たら、「確認」にチェックを入れて保存します。
以上で使用量の制限がかかりました。
テスト
準備が完了しましたので、いよいよブラウザでテストしてみます。
リクエスト形式
形式は次の通りです。
https://maps.googleapis.com/maps/api/directions/outputFormat?parameters
ベースのURLはhttps://maps.googleapis.com/maps/api/directions/
で、結果の受け取り方(json/xml)をoutputFomat
で指定します。parameters
部分がリクエストパラメータ(具体的な要求内容)です。
必須パラメータは以下3点です。
パラメータ名 | 内容 |
---|---|
origin | 出発地 |
destination | 目的地 |
key | APIキー |
他にもたくさんのパラメータがあります。公式ドキュメントはこちらです。
テスト実行
試しに札幌駅から新千歳空港までの自動車走行距離をJSONで取得してみましょう。
メモ帳などのテキストエディタを開き、次のURLをコピペします。
https://maps.googleapis.com/maps/api/directions/json?origin=札幌駅&destination=新千歳空港&key=YOUR_API_KEY
最後の YOUR_API_KEY を自身のAPIキーに置き換えてください。置き換えたら、ブラウザの検索窓にコピペしてEnterしてみます。以下のような長いJSONがブラウザに表示され、最後のstatus
がOK
ならテストは成功です!
{
"geocoded_waypoints": [
{
"geocoder_status": "OK",
"place_id": "ChIJA_nD0nQpC18RpUdK3Yyx4qU",
"types": [
"establishment",
"point_of_interest",
"train_station",
"transit_station"
]
},
{
"geocoder_status": "OK",
"place_id": "ChIJ3RpcnUUgdV8R9oH25Xxguho",
"types": [
...(略)...
],
"status": "OK"
}