다음 페이지에는 경로 최적화 API optimizeTours 메서드의 다음 구성요소에 대한 매개변수 표가 알파벳순으로 나와 있습니다.
이러한 매개변수 표에는 검색을 용이하게 하기 위해 최상위 객체와 주요 매개변수만 나열되고 간략하게 설명되어 있습니다. 전체 설명과 모든 중첩된 매개변수가 포함된 전체 목록은 API 참조 문서를 참고하세요.
요청 본문
요청 본문에는 다음 요소가 포함됩니다. 이러한 요소는 오른쪽의 다이어그램에 표시되어 있으며 아래 표에 나열되어 있습니다.
OptimizeToursRequest: 모델과 해결 파라미터를 포함하는 최상위 요청 객체입니다.ShipmentModel: 배송, 차량, 전역 제약 조건을 포함하는 핵심 데이터 구조입니다.Shipment: 픽업 및 배송이 있는 작업입니다.VisitRequest: 수령 또는 배송의 위치와 제약 조건입니다.
Vehicle: 배송을 수행할 수 있는 차량입니다.
| 자녀 있음 | 매개변수 | 숙소 유형 | 설명 |
|---|---|---|---|
OptimizeToursRequest |
allowLargeDeadlineDespiteInterruptionRisk |
불리언 (true/false) |
true인 경우 제한 시간이 서버 중단 위험이 있는 큰 값 (30분 이상)으로 설정되어 있어도 요청이 처리됩니다. |
considerRoadTraffic |
불리언 (true/false) |
true인 경우 라우팅에 트래픽 데이터를 사용합니다. false인 경우 도로 네트워크 속도만 사용합니다. |
|
geodesicMetersPerSecond |
숫자 | useGeodesicDistances이 true인 경우 이 속도는 이동 시간을 계산하는 데 사용됩니다. |
|
injectedFirstSolutionRoutes[] |
객체 배열 (ShipmentRoute) |
최적화를 시작할 이전 솔루션의 경로입니다. | |
injectedSolutionConstraint |
object (InjectedSolutionConstraint) |
기존 경로와 유사하도록 솔루션을 제한하여 유지해야 하는 속성과 완화할 수 있는 속성을 지정합니다. | |
interpretInjectedSolutionsUsingLabels |
불리언 (true/false) |
true인 경우 배열 색인 대신 label로 삽입된 경로의 배송/차량을 일치시킵니다. |
|
label |
문자열 | 요청을 식별하는 임의 라벨로, 응답에 반환됩니다. | |
maxValidationErrors |
정수 | 반환할 최대 유효성 검사 오류 수를 지정합니다. 지정하지 않으면 기본 한도가 적용됩니다. | |
model |
object (ShipmentModel) |
필수 항목입니다. 최적화할 차량 및 배송의 집합입니다. | |
populatePolylines |
불리언 (true/false) |
true인 경우 경로의 인코딩된 폴리라인을 반환합니다. |
|
populateTransitionPolylines |
불리언 (true/false) |
true인 경우 방문 간 개별 전환에 대해 인코딩된 폴리라인을 반환합니다. |
|
refreshDetailsRoutes[] |
객체 배열 (ShipmentRoute) |
새로고침할 경로 목록입니다. 이렇게 하면 방문 순서를 수정하지 않고 기존 경로의 다중선, 시간, 거리가 다시 계산됩니다. | |
searchMode |
enum (SearchMode) |
RETURN_FAST (빠른 결과) 또는 CONSUME_ALL_AVAILABLE_TIME (제한 시간 내 최고 품질) |
|
solvingMode |
enum (SolvingMode) |
DEFAULT_SOLVE (기본값) 또는 VALIDATE_ONLY를 사용하여 해결하지 않고 모델의 유효성을 검사합니다. |
|
timeout |
기간 | 솔버가 실행되어야 하는 최대 기간입니다 (예: '30초', '300초') | |
useGeodesicDistances |
불리언 (true/false) |
true인 경우 측지선 (직선) 거리와 geodesicMetersPerSecond 속도를 사용하여 이동 거리와 시간이 계산됩니다. |
|
ShipmentModel( OptimizeToursRequest의 일부) |
durationDistanceMatrices[] |
객체 배열 (DurationDistanceMatrix) |
위치 간 라우팅에 사용되는 맞춤 소요 시간 및 거리 매트릭스를 지정합니다. |
durationDistanceMatrixDstTags[] |
문자열 배열 | 맞춤 시간 및 거리 매트릭스의 대상 (열)을 정의하는 태그입니다. | |
durationDistanceMatrixSrcTags[] |
문자열 배열 | 맞춤 기간 및 거리 매트릭스의 소스 (행)를 정의하는 태그입니다. | |
globalDurationCostPerHour |
숫자 | 가장 빠른 차량 시작부터 가장 늦은 차량 종료까지의 경로의 전역 시간 범위의 시간당 비용입니다. | |
globalEndTime |
타임스탬프 | 모델에 있는 이벤트의 가장 늦은 종료 시간입니다. | |
globalStartTime |
타임스탬프 | 모델에 있는 이벤트의 가장 빠른 시작 시간입니다. | |
maxActiveVehicles |
정수 | 솔루션에서 활성화할 수 있는 최대 차량 수입니다. | |
precedenceRules[] |
객체 배열 (PrecedenceRule) |
특정 배송 간의 주문 제약 조건을 정의하는 규칙입니다. | |
shipments[] |
객체 배열 (Shipment) |
서비스를 제공할 배송 목록입니다. | |
shipmentTypeIncompatibilities[] |
객체 배열 (ShipmentTypeIncompatibility) |
특정 유형의 배송이 동일한 차량으로 서비스되지 않도록 하는 규칙 | |
shipmentTypeRequirements[] |
객체 배열 (ShipmentTypeRequirement) |
특정 유형의 배송을 동일한 차량으로 처리해야 하는 규칙 | |
transitionAttributes[] |
객체 배열 (TransitionAttributes) |
특정 태그가 있는 방문 간 전환에 대한 추가 비용, 지연 시간, 거리 제한을 지정합니다. | |
vehicles[] |
객체 배열 (Vehicle) |
배송을 수행할 수 있는 차량 목록입니다. | |
Shipment( ShipmentModel의 일부) |
allowedVehicleIndices[] |
정수 배열 | 이 배송을 수행할 수 있는 차량의 색인입니다. |
costsPerVehicle[] |
맵 (키: 정수, 값: 숫자) | 특정 차량이 이 배송을 처리하는 경우 발생하는 추가 비용입니다. | |
costsPerVehicleIndices[] |
정수 배열 | costsPerVehicle 값이 적용되는 차량의 색인입니다. |
|
deliveries[] |
객체 배열 (VisitRequest) |
배송을 위한 대안입니다. | |
ignore |
불리언 (true/false) |
true인 경우 배송이 무시되고 최적화에 사용되지 않습니다. |
|
label |
문자열 | 배송을 식별하기 위한 사용자 정의 라벨로, 응답에 반환됩니다. | |
loadDemands |
맵 (키: 문자열, 값: Load) |
이 배송을 운반하는 데 필요한 용량 (예: 무게, 부피)입니다. | |
penaltyCost |
숫자 | 배송이 서비스되지 않는 경우의 비용입니다. 설정되지 않은 경우 배송이 필수입니다. | |
pickups[] |
객체 배열 (VisitRequest) |
배송을 수령하는 방법의 대안입니다. | |
pickupToDeliveryAbsoluteDetourLimit |
기간 | 직접 경로와 비교하여 픽업과 배송 사이에 허용되는 최대 절대 우회 시간입니다. | |
pickupToDeliveryRelativeDetourLimit |
숫자 | 배송에 허용되는 최대 상대 우회입니다 (예: 값 2.0은 총 시간이 직접 이동 시간의 최대 2배일 수 있음을 의미). | |
pickupToDeliveryTimeLimit |
기간 | 픽업 시작부터 배송 시작까지 허용되는 최대 기간입니다. | |
shipmentType |
문자열 | 비호환성 및 요구사항 규칙에 사용되는 유형 분류입니다. | |
VisitRequest( Shipment의 pickups 및 deliveries 구성요소) |
arrivalLocation |
object (LatLng) |
위도/경도 좌표로 된 지리적 도착 위치입니다. |
arrivalWaypoint |
object (Waypoint) |
차량이 방문을 수행하기 위해 도착하는 위치입니다. 좌표 또는 장소 ID로 정의됩니다. | |
cost |
숫자 | 이 특정 방문 요청이 해결사에 의해 선택된 경우 발생하는 비용입니다. | |
departureLocation |
object (LatLng) |
위도/경도 좌표로 표시된 지리적 출발 위치입니다. | |
departureWaypoint |
object (Waypoint) |
방문을 완료한 후 차량이 출발하는 위치입니다. 생략된 경우 arrivalWaypoint과 동일한 것으로 간주됩니다. |
|
duration |
기간 | 방문 시간 (서비스 시간), 예를 들어 로드/언로드하는 데 걸리는 시간입니다. | |
label |
문자열 | 이 특정 방문 요청에 대한 사용자 정의 라벨로, 응답에 반환됩니다. | |
loadDemands |
맵 (키: 문자열, 값: Load) |
이 방문에서 로드 변경을 지정해야 합니다 (예: -1: 패키지를 수령합니다. | |
tags[] |
문자열 배열 | 이 방문 요청에 연결된 태그입니다. 이 쿠키는 transitionAttributes를 사용하여 이번 방문과 다른 방문 간의 이동 시간을 계산하는 데 사용됩니다. |
|
timeWindows[] |
객체 배열 (TimeWindow) |
이 방문의 도착에 허용된 시간대입니다. | |
visitTypes[] |
문자열 배열 | 방문 유형을 설명하는 문자열입니다 (예: '배송', '설치'). 차량 모델에서 extraVisitDurationForVisitType을 적용하는 데 사용됩니다. |
|
Vehicle( ShipmentModel의 일부) |
breakRule |
object (BreakRule) |
휴식 시간 (예: 필수 점심시간)에 대한 규칙을 정의합니다. |
costPerHour |
숫자 | 전체 경로 시간의 시간당 비용입니다. | |
costPerKilometer |
숫자 | 이동 거리당 비용입니다. | |
costPerTraveledHour |
숫자 | 차량이 이동 중일 때의 시간당 비용입니다. | |
endLocation |
object (LatLng) |
위도/경도 좌표로 표시된 지리적 종료 위치입니다. | |
endTags[] |
문자열 배열 | 전환 속성에 사용되는 차량의 최종 상태를 정의하는 태그입니다. | |
endTimeWindows[] |
객체 배열 (TimeWindow) |
차량이 경로를 종료할 수 있는 허용된 시간대입니다. | |
endWaypoint |
object (Waypoint) |
경유지 (좌표 또는 장소 ID)를 사용하는 지리적 종료 위치입니다. | |
extraVisitDurationForVisitType |
map (key: string, value: Duration) | visitType에 따라 방문에 추가 기간을 더합니다. |
|
fixedCost |
숫자 | 경로의 거리나 시간에 관계없이 차량을 사용하는 경우 적용되는 고정 비용입니다. | |
ignore |
불리언 (true/false) |
true인 경우 차량이 무시되고 최적화에 사용되지 않습니다. |
|
label |
문자열 | 사용자 정의 차량 라벨로, 응답에 반환됩니다. | |
loadLimits |
맵 (키: 문자열, 값: LoadLimit) |
차량 용량 (예: 최대 중량, 최대 부피) | |
routeDistanceLimit |
object (DistanceLimit) |
차량 경로의 총 거리에 대한 엄격한 제한 또는 유연한 제한입니다. | |
routeDurationLimit |
object (DurationLimit) |
차량 경로의 총 시간에 대한 엄격한 제한 또는 유연한 제한입니다. | |
routeModifiers |
object (RouteModifiers) |
유료도로, 고속도로 또는 페리 제외와 같은 하나 이상의 제약 조건입니다. | |
startLocation |
object (LatLng) |
위도/경도 좌표로 된 지리적 시작 위치입니다. | |
startTags[] |
문자열 배열 | 전환 속성에 사용되는 차량의 시작 상태를 정의하는 태그입니다. | |
startTimeWindows[] |
객체 배열 (TimeWindow) |
차량이 경로를 시작할 수 있는 허용된 시간입니다. | |
startWaypoint |
object (Waypoint) |
경유지 (좌표 또는 장소 ID)를 사용하는 지리적 시작 위치입니다. | |
travelDurationLimit |
object (DurationLimit) |
차량의 총 이동 시간 (대기/서비스 시간 제외)에 대한 하드 또는 소프트 한도입니다. | |
travelDurationMultiple |
숫자 | 이동 시간에 적용되는 곱셈기입니다 (예: 1.5는 이동 속도를 50% 느리게 만듭니다. | |
travelMode |
enum (TravelMode) |
이동 수단 (예: DRIVING, WALKING). 이동 시간과 거리에 영향을 미칩니다. |
|
unloadingPolicy |
enum (UnloadingPolicy) |
언로드 순서를 정의합니다 (예: LIFO 또는 LAST_IN_FIRST_OUT). |
|
usedIfRouteIsEmpty |
불리언 (true/false) |
true인 경우 배송이 없어도 차량이 사용된 것으로 간주됩니다. 고정 비용이 발생하며 시작 위치와 종료 위치 사이를 이동합니다. |
응답 본문
응답 본문에는 오른쪽 다이어그램에 표시되고 아래 표에 나열된 다음 요소가 포함됩니다.
OptimizeToursResponse: 최적화된 경로와 측정항목을 포함하는 최상위 응답 객체입니다.Metrics: 솔루션의 전체 비용 및 실행 통계입니다.ShipmentRoute: 단일 차량에 할당된 방문 및 이동 경로의 시퀀스입니다.Visit: 승차 또는 배송을 수행하기 위한 경로의 정류장입니다.Transition: 두 경로 정류장 간의 이동 경로와 시간입니다.AggregatedMetrics: 기간, 거리, 기타 측정항목의 합계입니다. 이 요소는Metrics와ShipmentRoute에 모두 있을 수 있습니다.
| 자녀 있음 | 매개변수 | 숙소 유형 | 설명 |
|---|---|---|---|
OptimizeToursResponse |
metrics |
object (Metrics) |
총비용, 총거리, 총 기간, 차량 사용 횟수를 비롯한 솔루션의 집계된 측정항목입니다. |
requestLabel |
문자열 | 요청의 label 필드에서 복사된 라벨입니다. 응답을 원래 요청과 연관시키는 데 사용됩니다. |
|
routes[] |
객체 배열 (ShipmentRoute) |
각 차량에 대해 계산된 경로 목록입니다. 사용 여부와 관계없이 모든 차량의 항목이 포함됩니다. | |
skippedShipments[] |
객체 배열 (SkippedShipment) |
건너뛴 (서비스되지 않은) 배송 목록과 건너뛴 이유입니다. | |
validationErrors[] |
객체 배열 (OptimizeToursValidationError) |
입력 모델에서 발견된 유효성 검사 오류 목록입니다. solvingMode이 VALIDATE_ONLY로 설정되었거나 해결 중에 오류가 발생한 경우에 채워집니다. |
|
Metrics( OptimizeToursResponse의 일부) |
aggregatedRouteMetrics |
object (AggregatedMetrics) |
총 이동 거리, 총 시간, 대기 시간 등 모든 경로의 집계된 통계 |
costs |
map (key: string, value: number) | 유형별 비용 분석 (예: 'model.vehicles.cost_per_kilometer', 'model.shipments.penalty_cost') | |
earliestVehicleStartTime |
타임스탬프 | 사용된 모든 차량 중 가장 빠른 시작 시간입니다. | |
latestVehicleEndTime |
타임스탬프 | 사용된 모든 차량 중 가장 늦은 종료 시간입니다. | |
skippedMandatoryShipmentCount |
정수 | 건너뛴 필수 배송 수입니다. | |
totalCost |
숫자 | 모든 경로 비용과 건너뛴 배송 페널티를 합한 솔루션의 총비용입니다. | |
usedVehicleCount |
정수 | 솔루션에 사용된 차량 수입니다. | |
AggregatedMetrics( Metrics 및 ShipmentRoute의 일부) |
breakDuration |
기간 | 모든 경로에서 취한 휴식의 총 시간입니다. |
costs |
map (key: string, value: number) | 유형별 비용 분석 (예: 'model.vehicles.cost_per_kilometer', 'model.shipments.penalty_cost') | |
delayDuration |
기간 | 모든 경로의 총 지연 시간입니다. | |
earliestVehicleStartTime |
타임스탬프 | 사용된 모든 차량 중 가장 빠른 시작 시간입니다. | |
latestVehicleEndTime |
타임스탬프 | 사용된 모든 차량 중 가장 늦은 종료 시간입니다. | |
maxLoads |
맵 (키: 문자열, 값: VehicleLoad) |
솔루션의 어느 시점에서든 차량이 운반하는 최대 하중입니다. 하중 유형별로 키가 지정됩니다. | |
performedShipmentCount |
정수 | 모든 차량에서 수행된 총 배송 수입니다. | |
skippedMandatoryShipmentCount |
정수 | 건너뛴 필수 배송 수입니다. | |
totalCost |
숫자 | 모든 경로 비용과 건너뛴 배송 페널티를 합한 솔루션의 총비용입니다. | |
totalDuration |
기간 | 모든 경로의 총 지속 시간 (이동 + 대기 + 지연 + 휴식 + 방문)입니다. | |
travelDistanceMeters |
숫자 | 모든 경로의 총 이동 거리(미터)입니다. | |
travelDuration |
기간 | 모든 경로의 총 이동 시간입니다. | |
usedVehicleCount |
정수 | 솔루션에 사용된 차량 수입니다. | |
visitDuration |
기간 | 모든 경로에서 방문 (싣기/내리기)을 수행하는 데 소요된 총 시간입니다. | |
waitDuration |
기간 | 모든 경로의 총 대기 시간입니다. | |
ShipmentRoute( OptimizeToursResponse의 일부) |
breaks[] |
객체 배열 (Break) |
경로 중에 차량이 취한 휴식 목록입니다. |
hasTrafficInfeasibilities |
불리언 (true/false) |
경로에 교통 관련 불가능한 사항이 있는지 나타냅니다. | |
metrics |
object (AggregatedMetrics) |
이 경로와 관련된 측정항목(예: 총 이동 거리 및 이동 시간)입니다. | |
routeCosts |
map (key: string, value: number) | 이 경로의 비용 세부정보입니다. 키는 비용 유형입니다 (예: 'cost_per_hour')이고 값은 금액입니다. | |
routePolyline |
object (EncodedPolyline) |
경로의 전체 경로를 지리적으로 나타내는 인코딩된 다중선입니다. | |
routeTotalCost |
숫자 | 경로의 총비용으로, routeCosts 맵의 모든 비용의 합계입니다. |
|
transitions[] |
객체 배열 (Transition) |
방문을 연결하는 전환 (여행 구간)의 순서가 지정된 목록입니다. | |
vehicleEndTime |
타임스탬프 | 차량이 경로를 완료하는 시간입니다. | |
vehicleIndex |
정수 | 이 경로를 실행하는 소스 ShipmentModel의 차량 색인입니다. |
|
vehicleLabel |
문자열 | 요청 모델에서 복사된 차량의 사용자 정의 라벨입니다. | |
vehicleStartTime |
타임스탬프 | 차량이 경로를 시작하는 시간입니다. | |
visits[] |
객체 배열 (Visit) |
이 경로에서 차량이 수행한 방문 (픽업 및 배송)의 순서입니다. | |
Visit( ShipmentRoute의 일부) |
detour |
기간 | 이 방문으로 인해 발생한 추가 우회 시간으로, 이전 방문과 다음 방문 사이의 직접 경로와 비교한 시간입니다. |
isPickup |
불리언 (true/false) |
true인 경우 이 방문은 수령입니다. false인 경우 배송입니다. |
|
loadDemands |
맵 (키: 문자열, 값: Load) |
이 방문으로 충족된 수요 (예: 배송의 경우 -1)입니다. 이는 해당 VisitRequest 로드 요구사항의 사본입니다. |
|
shipmentIndex |
정수 | 이 방문이 서비스하는 소스 모델의 Shipment 필드 색인입니다. |
|
shipmentLabel |
문자열 | ShipmentModel에서 복사한 배송물 라벨입니다. |
|
startTime |
타임스탬프 | 방문이 시작될 예정인 시간입니다. | |
visitLabel |
문자열 | 모델의 VisitRequest에서 복사된 방문 요청의 라벨입니다. |
|
visitRequestIndex |
정수 | 이 방문이 해당하는 배송의 수령 또는 배송 목록에 있는 VisitRequest의 색인입니다. |
|
Transition( ShipmentRoute의 일부) |
breakDuration |
기간 | 이 전환 중에 취한 휴식 시간입니다. |
delayDuration |
기간 | 이 전환 중에 발생한 지연 시간입니다 (예: 일찍 도착하여 시간대를 기다림). | |
routePolyline |
object (EncodedPolyline) |
이 특정 전환의 경로를 나타내는 인코딩된 다중선입니다. | |
routeToken |
문자열 | 내비게이션 중에 경로를 재구성하기 위해 Google Navigation SDK에 전달할 수 있는 불투명 토큰입니다. | |
startTime |
타임스탬프 | 이 전환의 시작 시간입니다. | |
totalDuration |
기간 | 이동, 대기, 휴식, 지연을 포함한 전환의 총 지속 시간입니다. | |
trafficInfoUnavailable |
불리언 (true/false) |
true인 경우 이 전환에 트래픽 데이터를 사용할 수 없음을 나타냅니다. |
|
travelDistanceMeters |
숫자 | 이 전환 중에 이동한 거리(미터)입니다. | |
travelDuration |
기간 | 이 전환 중 이동 시간입니다. | |
vehicleLoads |
맵 (키: 문자열, 값: VehicleLoad) |
이 전환 중에 차량이 운반하는 화물입니다. 화물 유형 (예: 'weight'). | |
waitDuration |
기간 | 다음 방문이 시작되기 전에 대기하는 데 걸린 시간입니다. |