ルーティングの概要を計算する
テキスト検索(新版)または周辺検索(新版)を使用して、レスポンス内の各場所までの移動時間と距離を計算するには:
-
リクエストで
routingParameters.originパラメータを渡して、ルートの出発地の緯度と経度の座標を指定します。このパラメータは、レスポンス内の各地点までの所要時間と距離を計算するために必要です。 -
レスポンスに
routingSummaries配列が含まれるように、フィールド マスクにroutingSummariesを含めます。この配列には、ルーティングの起点から応答内の各場所までの所要時間と距離が含まれます。
API Explorer を使用すると、ライブ リクエストを行って、API と API オプションを理解できます。
テキスト検索(新版)を使用する
次のリクエストでは、テキスト検索(新版)のレスポンスに含まれる各場所までの移動時間と距離を計算します。
curl -X POST -d '{
"textQuery" : "Spicy Vegetarian Food in Sydney, Australia",
"routingParameters": {
"origin": {
"latitude": -33.8688,
"longitude": 151.1957362
}
}
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel,routingSummaries' \
'https://places.googleapis.com/v1/places:searchText'レスポンスには 2 つの JSON 配列が含まれます。places 配列には一致する場所が格納され、routingSummaries 配列には各場所までの移動時間と距離が格納されます。
{ "places": [ { object (Place) } ] "routingSummaries": [ { object (RoutingSummary) } }
routingSummaries 配列の各要素は、places 配列内の場所と同じ配列の場所にあります。つまり、routingSummaries[0] の要素は places[0] の場所に相当します。
routingSummaries の配列の長さは、places の配列の長さと同じです。場所の routingSummary が利用できない場合、配列エントリは空になります。
この例では、ルーティングの出発地から各場所までの所要時間と距離を計算するため、レスポンスの routingSummaries.legs フィールドには、ルーティングの出発地から場所までの duration と distanceMeters を含む 1 つの Leg オブジェクトが含まれます。
{ "places": [ { "formattedAddress": "1, Westfield Sydney Central Plaza, 450 George St, Sydney NSW 2000, Australia", "displayName": { "text": "Gözleme King Sydney", "languageCode": "en" } }, { "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia", "priceLevel": "PRICE_LEVEL_MODERATE", "displayName": { "text": "Mother Chu's Vegetarian Kitchen", "languageCode": "en" } }, … ] "routingSummaries": [ { "legs": [ { "duration": "597s", "distanceMeters": 2607 } ], "directionsUri": "https://www.google.com/maps/dir/-33.8688,151.1957362/''/data=!4m6!4m5!1m0!1m2!1m1!1s0x6b12ae3fa97cd745:0x6aecf365bf497c08!3e0" }, { "legs": [ { "duration": "562s", "distanceMeters": 2345 } ], "directionsUri": "https://www.google.com/maps/dir/-33.8688,151.1957362/''/data=!4m6!4m5!1m0!1m2!1m1!1s0x6b12ae3da97f60c1:0x845f3273bd764f6c!3e0" }, … ] }
この例では、ルーティングの起点から結果の最初の場所までの所要時間と距離はそれぞれ 597 秒と 2607 メートルであることがわかります。
周辺検索を使用する
この例では、Nearby Search レスポンス内の各場所までの移動時間と距離を計算します。この例では、オーストラリアのシドニーのレストランを検索し、位置制限とルートの出発地を同じ緯度と経度の座標に設定します。
curl -X POST -d '{
"includedTypes": ["restaurant"],
"maxResultCount": 10,
"locationRestriction": {
"circle": {
"center": {
"latitude": -33.8688,
"longitude": 151.1957362},
"radius": 500.0
}
},
"routingParameters": {
"origin": {
"latitude": -33.8688,
"longitude": 151.1957362
}
}
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key:API_KEY" \
-H "X-Goog-FieldMask: places.displayName,routingSummaries" \
https://places.googleapis.com/v1/places:searchNearby同じ座標を使用する必要はありません。locationRestrictionルーティングの起点となります。たとえば、locationRestriction検索結果をその円内に偏らせるために、シドニーの中心点に移動します。しかし、その後、ルーティングの起点を自宅の座標に設定すると、検索円内の別の場所になります。リクエストは検索結果を円にバイアスし、家の場所に基づいてルートの概要を計算します。
旅行オプションを指定する
デフォルトでは、所要時間と距離の計算は車に対して行われます。ただし、検索では、車両の種類やその他のオプションを制御することができます。
-
使用
routingParameters.travelMode輸送モードを設定するパラメータDRIVE、BICYCLE、WALK、 またはTWO_WHEELER。これらのオプションの詳細については、ルートで利用可能な車両タイプをご覧ください。 -
routingParameters.routingPreferenceプロパティを使用して、ルーティング設定オプションをTRAFFIC_UNAWARE(デフォルト)、TRAFFIC_AWARE、またはTRAFFIC_AWARE_OPTIMALに設定します。各オプションでは、データ品質とレイテンシのレベルが異なります。詳細については、交通データを含める方法と含めるかどうかを指定するをご覧ください。routingParameters.routingPreferenceプロパティは、プレビュー(一般提供前)のdirectionsUriフィールドに含まれる経路に影響します。これは、Google マップがリンクを開いたときに交通状況のオプションを表示するためです。 -
routingParameters.routeModifiersプロパティを使用して、avoidTolls、avoidHighways、avoidFerries、avoidIndoorを指定します。これらのオプションの詳細については、回避するルートの特徴を指定するをご覧ください。
次の例では、移動手段を DRIVE に指定し、高速道路を避けるように指定しています。
curl -X POST -d '{
"textQuery" : "Spicy Vegetarian Food in Sydney, Australia",
"routingParameters": {
"origin": {
"latitude": -33.8688,
"longitude": 151.1957362
},
"travelMode":"DRIVE",
"routeModifiers": {
"avoidHighways": true
}
}
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel,routingSummaries' \
'https://places.googleapis.com/v1/places:searchText'試してみよう:
API Explorer を使用すると、サンプル リクエストを作成して、API と API オプションを理解できます。
ページの右側にある API アイコン api を選択します。
必要に応じてリクエスト パラメータを編集します。
[実行] ボタンを選択します。ダイアログで、リクエストの送信に使用するアカウントを選択します。
API Explorer パネルで、全画面アイコン fullscreen を選択して API Explorer ウィンドウを拡大します。