Routes API에서 computeRouteMatrix 메서드(REST) 또는 스트리밍 ComputeRouteMatrix 메서드 (gRPC)를 호출하여 여러 출발지와 목적지에 대한 경로의 거리와 기간을 계산합니다.
출발지와 목적지의 목록이 주어지면 이 메서드는 각 출발지에서 시작하여 각 목적지에서 끝나는 경로의 거리와 기간을 계산합니다.
요청 한도
Compute 경로 매트릭스 메서드는 다음과 같은 요청 한도를 적용합니다.
요소 수 (출발지 수 x 목적지 수)는 625개를 초과할 수 없습니다.
TRAFFIC_AWARE_OPTIMAL
를 지정하면 요소 수가 100개를 초과할 수 없습니다.TRAFFIC_AWARE_OPTIMAL
에 관한 자세한 내용은 품질 및 지연 시간 구성을 참고하세요.장소 ID를 사용하여 지정할 수 있는 최대 경유지 (출발지 + 목적지) 수는 50개입니다.
응답 오류
Compute 경로 매트릭스 메서드의 한 가지 기능은 오류가 전체 응답 또는 개별 응답 요소에 대해 반환될 수 있다는 것입니다. 예를 들어 요청의 형식이 잘못된 경우(예: 출처가 0인 경우) 전체 응답에 오류가 포함됩니다.
그러나 응답의 요소 하위 집합에 오류가 적용되는 경우 (예: 출발지와 목적지의 조합에 대해 경로를 계산할 수 없음) 오류의 영향을 받는 요소만 오류 코드를 반환합니다.
스트림 결과
ComputeRouteMatrix gRPC 메서드는 출발지와 목적지의 목록을 받아서 출발지와 목적지의 각 조합에 대한 경로 정보가 포함된 스트림을 반환합니다. 결과는 스트림으로 반환되기 때문에 가능한 모든 경로 조합이 계산될 때까지 기다리지 않아도 결과를 처리할 수 있습니다.
스트림에서 반환되는 요소는 어떤 순서로든 반환되지 않을 수도 있습니다. 따라서 각 응답 요소에는 origin_index
와 destination_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개의 경로가 포함됩니다.
originIndex
및 destinationIndex
응답 필드를 사용하여 응답의 각 경로를 식별합니다. 예를 들어 응답의 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 경로 매트릭스를 모두 호출합니다.