1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Google Map APIを触ってみた

Last updated at Posted at 2023-08-01

はじめに

タイトルの通り!

本編

ここからが本編です

Google Routes API

ルート検索を行うAPIです。

基本情報

メソッド:POST
リクエスト:https://routes.googleapis.com/directions/v2:computeRoutes
クエリパラメータ:key=APIキー

ヘッダ

項目 パラメータ群 概要
X-Goog-FieldMask routes.duration,routes.distanceMeters 取得したいレスポンスフィールド

リクエストボディ

下記の条件でのリクエストボティのサンプル
【発地点】東京都港区芝公園4丁目2−8
【着地点】東京都墨田区押上1丁目1−2
【経路】車でのルート計算(有料道路、高速道路、 フェリーを避ける)
【経路選定】リアルタイムの交通状況は考慮しない

{
    "origin":{
        "address": "東京都港区芝公園4丁目2−8"
    },
    "destination":{
        "address": "東京都墨田区押上1丁目1−2"
    },
    "travelMode":"DRIVE",
    "routingPreference":"TRAFFIC_UNAWARE",
    "routeModifiers": {
        "avoidTolls": true,
        "avoidHighways": true,
        "avoidFerries": true
    }
}

オプション

オプションはリクエストボディにて指定する。
以下のパラメータなどが設定できる。

経路(Route)オプション
パラメータ 説明
origin 出発地点の座標または住所を指定します。
destination 到着地点の座標または住所を指定します。
waypoints 経由地点の座標または住所の配列を指定します。
複数の経由地点を指定する場合は、カンマで区切ります。
travelMode 交通手段を指定します。以下のいずれかを選択します:
- DRIVING: 車でのルートを計算します。
- WALKING: 徒歩でのルートを計算します。
- BICYCLING: 自転車でのルートを計算します。
- TRANSIT: 公共交通機関を使用してのルートを計算します。
avoid 避けるべき要素を指定します。以下のいずれかを選択します:
- TOLLS: 有料道路を避けます。
- HIGHWAYS: 高速道路を避けます。
- FERRIES: フェリーを避けます。
- INDOOR: 屋内経路を避けます。
- NONE: 避けずにすべての経路を含めます。
routingPreference ルート選定に交通状況を加味するかどうかを指定します。
以下のいずれかを選択します:
- ROUTING_PREFERENCE_UNSPECIFIED:ルーティング設定が指定されていません。デフォルトは TRAFFIC_UNAWARE です。
-TRAFFIC_UNAWARE:リアルタイムの交通状況は考慮せずにルートを計算します。
【課金レートが上がる】
- TRAFFIC_AWARE:実際の交通状況を加味したルートを計算します。
- TRAFFIC_AWARE_OPTIMAL:パフォーマンスを最適化することなく、実際の交通状況を加味したルートを計算します。この値を使用すると、レイテンシが最も高くなります。

レスポンス

ヘッダのX-Goog-FieldMaskに指定した値を取得可能。

Routeオブジェクト(ドキュメント)

{
  "routeLabels": [
    enum (RouteLabel)
  ],
  "legs": [
    {
      object (RouteLeg)
    }
  ],
  "distanceMeters": integer,
  "duration": string,
  "staticDuration": string,
  "polyline": {
    object (Polyline)
  },
  "description": string,
  "warnings": [
    string
  ],
  "viewport": {
    object (Viewport)
  },
  "travelAdvisory": {
    object (RouteTravelAdvisory)
  },
  "optimizedIntermediateWaypointIndex": [
    integer
  ],
  "localizedValues": {
    object (RouteLocalizedValues)
  },
  "routeToken": string
}

Google Geocoding API

ジオコーディング:住所→緯度/経度を変換する。
※リバースジオコーディング:緯度/経度→住所については本記事では取りあげない。

基本情報

メソッド:GET
リクエスト:https://maps.googleapis.com/maps/api/geocode/json?
パラメータ

必須パラメータ 説明
key APIキー
address ジオコーディングの対象となる住所、地名、場所を指定します。
または
components 住所の特定のコンポーネントに対してフィルタリングするために使用します。詳細な指定方法はドキュメントを参照してください。
任意パラメータ 説明
outputFormat 出力形式を指定します。
- json(推奨)
- xml
bounds ジオコーディングの結果を特定の範囲内に制限します。矩形範囲を指定するために、南西端と北東端の緯度経度を指定します。
language 言語を指定します。
region 地域コードや地域名を指定します。
components コンポーネントフィルタリングのための追加パラメータを指定します。複数のコンポーネントを指定する場合は、カンマで区切ります。

レスポンス

{
    "results": [
        {
            "address_components": [
                {
                    "long_name": "1",
                    "short_name": "1",
                    "types": [
                        "premise"
                    ]
                },
                {
                    "long_name": "3",
                    "short_name": "3",
                    "types": [
                        "political",
                        "sublocality",
                        "sublocality_level_4"
                    ]
                },
                {
                    "long_name": "2-chōme",
                    "short_name": "2-chōme",
                    "types": [
                        "political",
                        "sublocality",
                        "sublocality_level_3"
                    ]
                },
                {
                    "long_name": "Asakusa",
                    "short_name": "Asakusa",
                    "types": [
                        "political",
                        "sublocality",
                        "sublocality_level_2"
                    ]
                },
                {
                    "long_name": "Taito City",
                    "short_name": "Taito City",
                    "types": [
                        "locality",
                        "political"
                    ]
                },
                {
                    "long_name": "Tokyo",
                    "short_name": "Tokyo",
                    "types": [
                        "administrative_area_level_1",
                        "political"
                    ]
                },
                {
                    "long_name": "Japan",
                    "short_name": "JP",
                    "types": [
                        "country",
                        "political"
                    ]
                },
                {
                    "long_name": "111-0032",
                    "short_name": "111-0032",
                    "types": [
                        "postal_code"
                    ]
                }
            ],
            "formatted_address": "2-chōme-3-1 Asakusa, Taito City, Tokyo 111-0032, Japan",
            "geometry": {
                "location": {
                    "lat": 35.7147651,
                    "lng": 139.7966553
                },
                "location_type": "ROOFTOP",
                "viewport": {
                    "northeast": {
                        "lat": 35.715996,
                        "lng": 139.7976969802915
                    },
                    "southwest": {
                        "lat": 35.7109567,
                        "lng": 139.7949990197085
                    }
                }
            },
            "partial_match": true,
            "place_id": "ChIJ8T1GpMGOGGARDYGSgpooDWw",
            "plus_code": {
                "compound_code": "PQ7W+WM Taito City, Tokyo, Japan",
                "global_code": "8Q7XPQ7W+WM"
            },
            "types": [
                "establishment",
                "place_of_worship",
                "point_of_interest",
                "tourist_attraction"
            ]
        }
    ],
    "status": "OK"
}

まとめ

Google Map APIを触ってみた

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?