경로를 통과할 지점 설정

기본적으로 중간 경유지는 승하차를 위해 정차하는 데 사용되지만 중간 경유지를 통과하는 것만을 의미하도록 지정할 수도 있습니다.

출발지 웨이포인트, 패스 스루 중간 웨이포인트, 도착지 웨이포인트가 포함된 경로에는 중간(via) 웨이포인트를 통과하면서 출발지와 도착지를 연결하는 경로 구간이 하나만 포함됩니다.

Waypoint (REST) 또는 Waypoint (gRPC)를 사용하여 중간 웨이포인트의 via 속성을 true로 설정하여 웨이포인트를 패스스루 웨이포인트로 구성합니다.

via 속성은 사용자가 지도에서 중간 지점을 드래그하는 것에 응답하여 경로를 만들 때 가장 효과적입니다. 이렇게 하면 사용자가 최종 경로가 실시간으로 어떻게 표시되는지 확인할 수 있으며, 컴퓨팅 경로에 액세스할 수 있는 위치에 중간 지점이 배치되도록 할 수 있습니다.

다음 예는 중간 웨이포인트를 통과 웨이포인트로 표시하는 방법을 보여줍니다.

{
  "location": {
    "latLng": {
      "latitude":37.419734,
      "longitude":-122.0827784
    }
  },
  "via": true
}

중간 웨이포인트의 장소 ID에 액세스

출발지, 도착지 또는 중간 웨이포인트의 위치를 주소 문자열 또는 플러스 코드로 지정하면 API는 해당하는 장소 ID가 있는 가장 관련성 높은 위치를 찾으려고 시도합니다. 결과의 geocodingResults.intermediates 배열에는 위치에 관한 추가 데이터와 함께 중간 지점 위치에 해당하는 장소 ID가 포함됩니다.

intermediates 배열의 각 요소에 대해 intermediateWaypointRequestIndex 속성을 사용하여 요청의 중간 웨이포인트 중 응답의 장소 ID에 해당하는 웨이포인트를 확인합니다.

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

  • 요청에 세 개의 중간 웨이포인트를 지정합니다. 이 중 두 개의 웨이포인트는 주소 문자열로 지정되고 하나는 위도/경도 좌표로 지정됩니다.

  • 응답 필드 마스크에 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'

응답에는 출발지, 도착지, 세 개의 중간 지점 중 두 곳의 장소 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"
      }
    ]
  }
}