はじめに
タイトルの通り!
本編
ここからが本編です
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を触ってみた