기본적으로 중간 경유지는 승차 및 하차 정류장에 사용되지만, 중간 경유지가 지나갈 목적으로 사용하도록 지정할 수도 있습니다.
출발지 웨이포인트, 통과 중간 웨이포인트, 도착 웨이포인트가 포함된 경로에는 중간(via
) 웨이포인트를 통과하면서 출발지와 도착지를 연결하는 경로 구간이 하나만 포함됩니다.
Waypoint (REST) 또는 Waypoint (gRPC)를 사용하여 경유지의 via
속성을 true
로 설정하여 중간 경유지를 통과 경유지로 구성합니다.
via
속성은 지도에서 경유지를 드래그하는 사용자에 대한 응답으로 경로를 만들 때 가장 효과적입니다. 이렇게 하면 사용자가 최종 경로가 실시간으로 어떻게 나타날지 알 수 있으며, Compute Routes에 액세스가 가능한 위치에 경유지가 배치되도록 보장할 수 있습니다.
다음 예는 중간 웨이포인트를 통과 웨이포인트로 표시하는 방법을 보여줍니다.
{ "location": { "latLng": { "latitude":37.419734, "longitude":-122.0827784 } }, "via": true }
중간 웨이포인트의 장소 ID에 액세스
출발지, 목적지 또는 중간 경유지의 위치를 주소 문자열 또는 플러스 코드로 지정하면 API는 해당하는 장소 ID가 있는 가장 관련성 높은 위치를 찾으려고 시도합니다. 결과의 geocodingResults.intermediates
배열에는 위치에 관한 추가 데이터와 함께 웨이포인트 위치에 해당하는 장소 ID가 포함됩니다.
intermediates
배열의 각 요소에 대해 intermediateWaypointRequestIndex
속성을 사용하여 요청의 중간 웨이포인트 중 응답의 장소 ID에 해당하는 웨이포인트를 확인합니다.
예를 들면 다음과 같습니다.
요청에서 3개의 중간 경유지를 지정합니다. 이 중 두 경유지는 주소 문자열로 지정되고 하나는 위도/경도 좌표로 지정됩니다.
결과에서
geocodingResults
배열을 반환하도록 지정하려면 응답 필드 마스크에geocodingResults
를 포함합니다.
curl -X POST -d '{ "origin":{ "address": "1600 Amphitheatre Parkway, Mountain View, CA" }, "destination":{ "address": "24 Willie Mays Plaza, San Francisco, CA 94107" }, "intermediates": [ { "address": "450 Serra Mall, Stanford, CA 94305, USA" }, { "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0807784 } } }, { "address": "1836 El Camino Real, Redwood City, CA 94063" } ], "travelMode": "DRIVE", }' -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' -H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs,geocodingResults' 'https://routes.googleapis.com/directions/v2:computeRoutes'
응답에는 출발지, 목적지, 경유지 3개 중 두 곳의 장소 ID가 포함된 geocodingResults
배열이 포함됩니다. 요청의 색인 0 및 2에 있는 웨이포인트입니다. 요청의 색인 1에 있는 경유지가 위도/경도 좌표를 사용하여 지정되었으므로 응답의 geocodingResults
배열에서 생략됩니다.
{ "routes": [{...}], "geocodingResults": { "origin": { "geocoderStatus": {}, "type": [ "premise" ], "placeId": "ChIJj38IfwK6j4ARNcyPDnEGa9g" }, "destination": { "geocoderStatus": {}, "type": [ "premise" ], "placeId": "ChIJI7ES6tl_j4ARVpDZoXbWAiY" }, "intermediates": [ { "geocoderStatus": {}, "intermediateWaypointRequestIndex": 0, "type": [ "street_address" ], "placeId": "ChIJvdLMGyq7j4ARScE5tWX_C0Y" }, { "geocoderStatus": {}, "intermediateWaypointRequestIndex": 2, "type": [ "premise" ], "placeId": "ChIJkTc0GKajj4AR9UMsOSHwGD0" } ] } }