경로를 통과할 지점 설정

기본적으로 중간 경유지는 승차 및 하차 시 정차하는 데 사용되지만 중간 경유지가 그냥 통과하도록 지정할 수도 있습니다.

출발지 경유지, 패스스루 중간 경유지, 목적지 경유지가 포함된 경로에는 출발지와 목적지를 연결하고 중간(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에 해당하는지 확인합니다.

예를 들면 다음과 같습니다.

  • 요청에서 세 개의 중간 경유지를 지정합니다. 이 중 2개의 경유지는 주소 문자열로 지정되고 다른 하나는 위도/경도 좌표로 지정됩니다.

  • 응답 필드 마스크에 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개 중 2개의 장소 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"
      }
    ]
  }
}