中間ウェイポイントは、出発地と目的地の間にあり、ルートを通るように指定する場所です。中間ウェイポイントは、停車地点にすることも、通過地点として指定することもできます。停留所のウェイポイントの例については、ルート沿いに停留所を設定するをご覧ください。パススルーするウェイポイントの例については、パススルーするルートのポイントを設定するをご覧ください。
computeRoutes メソッド(REST)または ComputeRoutes メソッド(gRPC)の intermediates
配列プロパティを使用して、最大 25 個の中間ウェイポイントを定義します。
リクエストの中間ウェイポイントごとに、レスポンスの ルート オブジェクト(REST)または ルート オブジェクト(gRPC)が legs
配列にエントリを追加して、その区間の詳細を提供します。
ルートの各区間は、RouteLeg(REST)または RouteLeg(gRPC)オブジェクトで表されます。レスポンス フィールド マスクを使用して、返される RouteLeg
フィールドを制御します。
例 - 中間ウェイポイントを設定する
次の例では、intermediates
配列プロパティを使用して、ルートの POST リクエスト本文に単一の中間ウェイポイントを追加します。
この例では、X-Goog-FieldMask
ヘッダーでレスポンス フィールドマスクを使用して、レスポンスで次のフィールドを返すことを指定します。
routes.duration
routes.distanceMeters
RouteLeg
オブジェクト全体に対応するroutes.legs
。
curl -X POST -d '{ "origin":{ "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0827784 } }, "sideOfRoad": true }, "destination":{ "location":{ "latLng":{ "latitude": 37.417670, "longitude": -122.079595 } } }, "intermediates": [ { "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0807784 } } } ], "travelMode": "DRIVE", "routingPreference": "TRAFFIC_AWARE", "departureTime": "2022-10-15T15:01:23.045123456Z", "computeAlternativeRoutes": false, "routeModifiers": { "avoidTolls": false, "avoidHighways": false, "avoidFerries": false }, "languageCode": "en-US", "units": "IMPERIAL" }' -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' -H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs' 'https://routes.googleapis.com/directions/v2:computeRoutes'
この呼び出しからのレスポンスには、legs
配列が含まれます。区間の各ステップは、RouteLegStep(REST)または RouteLegStep(gRPC)オブジェクトで表されます。
{ "routes": [ { "legs": [ # First leg { "distanceMeters": 207, "duration": "89s", "staticDuration": "89s", "polyline": { "encodedPolyline": "ipkcFjgchVd@@@cF]@@oCK?" }, "startLocation": { "latLng": { "latitude": 37.4197318, "longitude": -122.0826233 } }, "endLocation": { "latLng": { "latitude": 37.419734, "longitude": -122.08077919999998 } }, "steps": [ { "distanceMeters": 21, "staticDuration": "6s", "polyline": { "encodedPolyline": "ipkcFjgchVd@@" }, "startLocation": { "latLng": { "latitude": 37.4197318, "longitude": -122.0826233 } }, "endLocation": { "latLng": { "latitude": 37.41954, "longitude": -122.08262750000002 } } }, ... }, # Second leg { "distanceMeters": 598, "duration": "159s", "staticDuration": "159s", "polyline": { "encodedPolyline": "ipkcFz{bhVh@??{@xPBP?J}E{E?" }, "startLocation": { "latLng": { "latitude": 37.419734, "longitude": -122.08077919999998 } }, "endLocation": { "latLng": { "latitude": 37.417616599999995, "longitude": -122.07938820000001 } }, "steps": [ { ...