Google Map API で経路情報を取得する．

##APIとは

Application Programming Interfaceの略称で、「プログラムからソフトウェアを操作するためのインターフェイス」のことです。

メリットとしては，APIを使うとGoogle側が誰がGoogleのサーバーにアクセスしていて，Googleの地図を使っているのか正確に把握できるという利点があります．

利用者としても，正式に企業が鍵を発行しますので利用していいですよとしてくれているわけですから，APIを利用して提供したサービスが大ヒットして，Googleのサーバーに大きな負担がかかって，他の利用者に影響が出たとしても全く訴えられる心配もなく安全に利用できるというメリットがあります．


##Google Map Direction APIとは
https://cloud.google.com/maps-platform/routes/
<img width="1370" alt="スクリーンショット 2019-01-30 17.09.34.png" src="https://qiita-image-store.s3.amazonaws.com/0/274029/687f54c1-d62c-5abf-aa08-bdf49131ce69.png">

APIの種類にもいくつかあります．

1. Google Map Direction API 
目的地までの経路と時間を教えてくれます

似たようなところですと．

距離と時間を知りたい場合
2. Google Map Distance Matrix API


地図を使いたい場合
3. Google Maps JavaScript API

などがあります．

##APIを取得しよう

「使ってみる」ボタン　を押すとポップアップが表示されます．ここで「ルート」にチェックを入れ，「続行」します．

<img width="1172" alt="スクリーンショット 2019-01-31 9.13.07.png" src="https://qiita-image-store.s3.amazonaws.com/0/274029/68ecec25-1b8a-1e4a-ffee-1b7165ba36f3.png">

Google Map Platform は基本的にサブスクリプションモデルで使った分だけお支払いという形なので，まずはクレジットカードを登録しましょう．

安心してください！月に10万アクセス（静的マップの読み込み）までは無料で利用できるので通常の利用であれば，無料の範囲に収まると思われます．


##APIをたたいてみよう．

originに出発地
destinationに到着地
YOUR_API_KEY に先程発行したAPIを入力するとURLの完成です．

```
https://maps.googleapis.com/maps/api/directions/json?origin=東京都庁&destination=東京タワー&key=YOUR_API_KEY
```

このURLをブラウザに貼り付けてENTERを押すと，結果がJSON形式で返ってきます．

以下のような結果が帰ってくれば成功です！（かなり長いので，途中でデータをカットしています．）


```JSON
{
   "geocoded_waypoints" : [
      {
         "geocoder_status" : "OK",
         "place_id" : "ChIJoTcat9SMGGAR6GGG8zdcZvE",
         "types" : [
            "city_hall",
            "establishment",
            "local_government_office",
            "point_of_interest"
         ]
      },
      {
         "geocoder_status" : "OK",
         "place_id" : "ChIJCewJkL2LGGAR3Qmk0vCTGkg",
         "types" : [ "establishment", "point_of_interest", "premise" ]
      }
   ],
   "routes" : [
      {
         "bounds" : {
            "northeast" : {
               "lat" : 35.6921694,
               "lng" : 139.7493249
            },
            "southwest" : {
               "lat" : 35.6589794,
               "lng" : 139.6903981
            }
         },
         "copyrights" : "地図データ ©2019 Google, ZENRIN",
         "legs" : [
            {
               "distance" : {
                  "text" : "10.3 km",
                  "value" : 10259
               },
               "duration" : {
                  "text" : "18分",
                  "value" : 1077
               },
               "end_address" : "日本、〒105-0011 東京都港区芝公園４丁目２−８",
               "end_location" : {
                  "lat" : 35.6589794,
                  "lng" : 139.7457339
               },
               "start_address" : "日本、〒163-8001 東京都新宿区西新宿２丁目８−１",
               "start_location" : {
                  "lat" : 35.6896684,
                  "lng" : 139.6923063
               },
               "steps" : [
                  {
                     "distance" : {
                        "text" : "0.3 km",
                        "value" : 284
                     },
                     "duration" : {
                        "text" : "1分",
                        "value" : 61
                     },
                     "end_location" : {
                        "lat" : 35.6921694,
                        "lng" : 139.6916818
                     },
                     "html_instructions" : "\u003cb\u003e北\u003c/b\u003eに進む",
                     "polyline" : {
                        "points" : "msyxE}srsYqF|@a@HuBZI?ODoAR"
                     },
                     "start_location" : {
                        "lat" : 35.6896684,
                        "lng" : 139.6923063
                     },
                     "travel_mode" : "DRIVING"
                  },

```