경로 행렬 계산

Routes API에서 computeRouteMatrix 메서드(REST) 또는 스트리밍 ComputeRouteMatrix 메서드 (gRPC)를 호출하여 여러 출발지와 목적지에 대한 경로의 거리와 기간을 계산합니다.

출발지와 목적지의 목록이 주어지면 이 메서드는 각 출발지에서 시작하여 각 목적지에서 끝나는 경로의 거리와 기간을 계산합니다.

요청 한도

Compute 경로 매트릭스 메서드는 다음과 같은 요청 한도를 적용합니다.

  • 요소 수 (출발지 수 x 목적지 수)는 625개를 초과할 수 없습니다.

  • TRAFFIC_AWARE_OPTIMAL를 지정하면 요소 수가 100개를 초과할 수 없습니다. TRAFFIC_AWARE_OPTIMAL에 관한 자세한 내용은 품질 및 지연 시간 구성을 참고하세요.

  • 장소 ID를 사용하여 지정할 수 있는 최대 경유지 (출발지 + 목적지) 수는 50개입니다.

응답 오류

Compute 경로 매트릭스 메서드의 한 가지 기능은 오류가 전체 응답 또는 개별 응답 요소에 대해 반환될 수 있다는 것입니다. 예를 들어 요청의 형식이 잘못된 경우(예: 출처가 0인 경우) 전체 응답에 오류가 포함됩니다.

그러나 응답의 요소 하위 집합에 오류가 적용되는 경우 (예: 출발지와 목적지의 조합에 대해 경로를 계산할 수 없음) 오류의 영향을 받는 요소만 오류 코드를 반환합니다.

스트림 결과

ComputeRouteMatrix gRPC 메서드는 출발지와 목적지의 목록을 받아서 출발지와 목적지의 각 조합에 대한 경로 정보가 포함된 스트림을 반환합니다. 결과는 스트림으로 반환되기 때문에 가능한 모든 경로 조합이 계산될 때까지 기다리지 않아도 결과를 처리할 수 있습니다.

스트림에서 반환되는 요소는 어떤 순서로든 반환되지 않을 수도 있습니다. 따라서 각 응답 요소에는 origin_indexdestination_index가 포함됩니다. 요청에 지정된 출발지 및 목적지에서 경로 출발지는 지정된 요소의 origins[origin_index], 경로 목적지는 destinations[destination_index]입니다. 이러한 배열은 색인이 생성되지 않습니다. 출발지 및 목적지 목록 주문을 저장하는 것이 중요합니다.

경로 행렬 계산 예시

HTTP 요청에서 computeRouteMatrix 메서드를 사용하여 경로 행렬을 계산합니다.

HTTP 예

다음 예시는 computeRouteMatrix HTTP 요청을 보여줍니다. 이 예에서 다음을 수행합니다.

  • 출발지 2개와 목적지 경유지 2개의 배열을 지정합니다. 이 메서드는 응답에 4개의 경로가 포함되도록 각 출발지에서 목적지까지의 경로를 계산합니다.

    배열에서 첫 번째 요소는 색인 0에 있고 두 번째 요소는 색인 1에 있는 식입니다.

  • 응답 필드 마스크를 포함하여 반환할 응답(REST) 또는 ComputeRoutesResponse(gRPC) 필드를 지정합니다. 이 예에서는 각 경로에 대해 originIndex, destinationIndex, duration, distanceMeters, status, condition를 반환하도록 요청을 구성합니다. 자세한 내용은 반환할 필드 선택을 참조하세요.

curl -X POST -d '{
  "origins": [
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.420761,
            "longitude": -122.081356
          }
        }
      },
      "routeModifiers": { "avoid_ferries": true}
    },
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.403184,
            "longitude": -122.097371
          }
        }
      },
      "routeModifiers": { "avoid_ferries": true}
    }
  ],
  "destinations": [
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.420999,
            "longitude": -122.086894
          }
        }
      }
    },
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.383047,
            "longitude": -122.044651
          }
        }
      }
    }
  ],
  "travelMode": "DRIVE",
  "routingPreference": "TRAFFIC_AWARE"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status,condition' \
'https://routes.googleapis.com/distanceMatrix/v2:computeRouteMatrix'

응답에는 모든 출발지 및 목적지 경유지의 조합에 대해 가능한 4개의 경로가 포함됩니다.

originIndexdestinationIndex 응답 필드를 사용하여 응답의 각 경로를 식별합니다. 예를 들어 응답의 originIndex이 1이면 요청에서 origins 배열의 색인 1에 있는 경유지에서 계산된 경로에 해당합니다.

[
    {
        "originIndex": 0,
        "destinationIndex": 0,
        "status": {},
        "distanceMeters": 822,
        "duration": "160s",
        "condition": "ROUTE_EXISTS"
    },
    {
        "originIndex": 1,
        "destinationIndex": 0,
        "status": {},
        "distanceMeters": 2919,
        "duration": "361s",
        "condition": "ROUTE_EXISTS"
    },
    {
        "originIndex": 1,
        "destinationIndex": 1,
        "status": {},
        "distanceMeters": 5598,
        "duration": "402s",
        "condition": "ROUTE_EXISTS"
    },
    {
        "originIndex": 0,
        "destinationIndex": 1,
        "status": {},
        "distanceMeters": 7259,
        "duration": "712s",
        "condition": "ROUTE_EXISTS"
    }
]

gRPC 예

gRPC 요청의 예는 gRPC 요청 예시의 예시를 참조하세요. 해당 페이지의 자바 예시에서는 Compute 경로와 Compute 경로 매트릭스를 모두 호출합니다.