- JSON 표현
- 방문
<ph type="x-smartling-placeholder">
- </ph>
- JSON 표현
- 전환
<ph type="x-smartling-placeholder">
- </ph>
- JSON 표현
- EncodedPolyline
<ph type="x-smartling-placeholder">
- </ph>
- JSON 표현
- 휴식
<ph type="x-smartling-placeholder">
- </ph>
- JSON 표현
차량의 경로는 다음과 같이 시간 축을 따라 분해할 수 있습니다 (n회의 방문이 있다고 가정).
| | | | | T[2], | | |
| Transition | Visit #0 | | | V[2], | | |
| #0 | aka | T[1] | V[1] | ... | V[n-1] | T[n] |
| aka T[0] | V[0] | | | V[n-2],| | |
| | | | | T[n-1] | | |
^ ^ ^ ^ ^ ^ ^ ^
vehicle V[0].start V[0].end V[1]. V[1]. V[n]. V[n]. vehicle
start (arrival) (departure) start end start end end
다음 예시에는 차이가 있습니다.
- 차량 출발 및 도착, 각 방문의 시작 및 종료 (도착 및 출발라고도 함)와 같은 '시의적 이벤트'입니다. 몇 초 안에 발생합니다.
- '시간 간격'(예: 방문 자체, 방문 간 전환) 시간 간격의 지속 시간이 0인 경우도 있지만(예: 시작과 종료 시간이 같을 때) 지속 시간이 양수인 경우가 많습니다.
불변:
- n회의 방문이 있으면 n+1회의 전환이 발생합니다.
- 방문은 항상 방문 앞에 있는 전환 (동일한 색인)과 방문 이후의 전환 (색인 + 1)으로 둘러싸여 있습니다.
- 차량 시동 다음에는 항상 전환 #0이 나옵니다.
- 차량 끝은 항상 전환 #n 앞에 옵니다.
확대하면 Transition
및 Visit
중에 다음과 같은 결과가 발생합니다.
---+-------------------------------------+-----------------------------+-->
| TRANSITION[i] | VISIT[i] |
| | |
| * TRAVEL: the vehicle moves from | PERFORM the visit: |
| VISIT[i-1].departure_location to | |
| VISIT[i].arrival_location, which | * Spend some time: |
| takes a given travel duration | the "visit duration". |
| and distance | |
| | * Load or unload |
| * BREAKS: the driver may have | some quantities from the |
| breaks (e.g. lunch break). | vehicle: the "demand". |
| | |
| * WAIT: the driver/vehicle does | |
| nothing. This can happen for | |
| many reasons, for example when | |
| the vehicle reaches the next | |
| event's destination before the | |
| start of its time window | |
| | |
| * DELAY: *right before* the next | |
| arrival. E.g. the vehicle and/or | |
| driver spends time unloading. | |
| | |
---+-------------------------------------+-----------------------------+-->
^ ^ ^
V[i-1].end V[i].start V[i].end
마지막으로, 전환 중에 여행, 휴식, 지연, 대기를 조정하는 방법은 다음과 같습니다.
- 겹치지 않습니다.
- 지연은 고유하며 다음 방문 (또는 차량 종료) 직전에 연속된 시간이어야 합니다. 따라서 지연 기간을 알고 있으면 시작 시간과 종료 시간을 알 수 있습니다.
- BREAKS는 연속적이고 겹치지 않는 기간입니다. 응답에서 각 광고 시점의 시작 시간과 길이를 지정합니다.
- TRAVEL 및 WAIT는 '선점 가능'하며 전환 중에 여러 번 중단될 수 있습니다. 클라이언트는 이동이 '가능한 한 빨리' 이루어진다고 가정할 수 있습니다. '대기'하다가 자동으로 채워집니다.
(복잡한) 예시:
TRANSITION[i]
--++-----+-----------------------------------------------------------++-->
|| | | | | | | ||
|| T | B | T | | B | | D ||
|| r | r | r | W | r | W | e ||
|| a | e | a | a | e | a | l ||
|| v | a | v | i | a | i | a ||
|| e | k | e | t | k | t | y ||
|| l | | l | | | | ||
|| | | | | | | ||
--++-----------------------------------------------------------------++-->
JSON 표현 |
---|
{ "vehicleIndex": integer, "vehicleLabel": string, "vehicleStartTime": string, "vehicleEndTime": string, "visits": [ { object ( |
필드 | |
---|---|
vehicleIndex |
경로를 수행하는 차량으로, 소스 |
vehicleLabel |
이 경로를 이용하는 차량의 라벨로, 지정된 경우 |
vehicleStartTime |
차량이 경로를 시작하는 시간입니다. RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 |
vehicleEndTime |
차량이 경로를 완료하는 시간입니다. RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 |
visits[] |
경로를 나타내는 방문 순서입니다. locations[i] 는 경로의 i번째 방문입니다. 이 필드가 비어 있으면 차량이 사용되지 않는 것으로 간주됩니다. |
transitions[] |
경로의 순서가 지정된 전환 목록입니다. |
hasTrafficInfeasibilities |
교통정보로 인해 예상 이동 시간( |
routePolyline |
경로의 인코딩된 폴리라인 표현입니다. 이 필드는 |
breaks[] |
이 경로를 이용하는 차량의 휴식 시간이 예정되어 있습니다. |
metrics |
이 경로의 소요 시간, 거리, 부하 측정항목입니다. |
routeCosts |
경로의 비용으로, 비용 관련 요청 필드별로 분류됩니다. 키는 입력OptimizeToursRequest를 기준으로 한 proto 경로입니다. 예: 'model.shipments.pickups.cost'이고 값은 해당 비용 필드에서 생성되어 전체 경로에 대해 집계된 총 비용입니다. 즉, Cost["model.shipments.pickups.cost"]는 해당 경로에 있는 모든 수령 비용의 합계입니다. 모델에 정의된 모든 비용은 여기에서 자세히 보고됩니다. 단, 2022년 1월 기준으로 집계 방식으로만 보고되는 TransitionAttributes 관련 비용은 예외입니다.
|
routeTotalCost |
경로의 총비용입니다. 비용 맵의 모든 비용 합계입니다. |
방문
경로 중에 이루어지는 방문입니다. 이 방문은 Shipment
의 수령 또는 배송에 해당합니다.
JSON 표현 |
---|
{
"shipmentIndex": integer,
"isPickup": boolean,
"visitRequestIndex": integer,
"startTime": string,
"loadDemands": {
string: {
object ( |
필드 | |
---|---|
shipmentIndex |
소스 |
isPickup |
true인 경우 방문은 |
visitRequestIndex |
|
startTime |
방문이 시작되는 시간입니다. 차량이 이보다 일찍 방문 위치에 도착할 수 있습니다. 시간은 RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 |
loadDemands |
배송 및 방문 요청의 합계(
|
detour |
방문 전 경로에 있는 배송 화물과 특정 기간으로 인한 대기 시간으로 인해 추가 우회 시간이 발생합니다. 배달 방문인 경우 우회는 해당 수령 방문으로부터 계산되며 다음과 같습니다.
그 외의 경우에는 차량
소수점 아래가 최대 9자리까지이고 ' |
shipmentLabel |
|
visitLabel |
|
전환
경로에서 두 이벤트 간의 전환입니다. ShipmentRoute
의 설명을 참조하세요.
차량에 startLocation
또는 endLocation
가 없는 경우 상응하는 이동 측정항목은 0입니다.
JSON 표현 |
---|
{ "travelDuration": string, "travelDistanceMeters": number, "trafficInfoUnavailable": boolean, "delayDuration": string, "breakDuration": string, "waitDuration": string, "totalDuration": string, "startTime": string, "routePolyline": { object ( |
필드 | |
---|---|
travelDuration |
이 전환 기간의 이동 시간입니다. 소수점 아래가 최대 9자리까지이고 ' |
travelDistanceMeters |
전환 중 이동한 거리입니다. |
trafficInfoUnavailable |
|
delayDuration |
이 전환에 적용된 지연 시간의 합계입니다. 지연 시간이 있는 경우 다음 이벤트 (방문 또는 차량 종료) 정확히 소수점 아래가 최대 9자리까지이고 ' |
breakDuration |
이 전환 중에 발생한 중단 시간의 합계입니다(있는 경우). 각 광고 시점의 시작 시간 및 시간에 관한 세부정보는 소수점 아래가 최대 9자리까지이고 ' |
waitDuration |
전환 중에 대기한 시간입니다. 대기 시간은 유휴 시간에 해당하며 휴식 시간을 포함하지 않습니다. 또한 이 대기 시간은 인접하지 않은 여러 간격으로 분할될 수 있습니다. 소수점 아래가 최대 9자리까지이고 ' |
totalDuration |
편의상 제공되는 총 전환 기간입니다. 다음과 같습니다.
소수점 아래가 최대 9자리까지이고 ' |
startTime |
전환의 시작 시간입니다. RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 |
routePolyline |
전환 중에 이어지는 경로의 인코딩된 폴리라인 표현입니다. 이 필드는 |
vehicleLoads |
전환 과정에서 이 차량의 첫 번째 전환 중의 로드는 차량 경로의 시작 로드입니다. 그런 다음 각 방문 후 방문이 수령인지 배달인지에 따라 다음 전환의 로드를 가져오기 위해 방문의
|
EncodedPolyline
다중선의 인코딩된 표현입니다. 다중선 인코딩에 대한 자세한 내용은 https://developers.google.com/maps/documentation/utilities/polylinealgorithm https://developers.google.com/maps/documentation/javascript/reference/geometry#encoding을 참조하세요.
JSON 표현 |
---|
{ "points": string } |
필드 | |
---|---|
points |
다중선의 인코딩된 점을 나타내는 문자열입니다. |
휴식 시간
광고 시점 실행을 나타내는 데이터입니다.
JSON 표현 |
---|
{ "startTime": string, "duration": string } |
필드 | |
---|---|
startTime |
휴식 시작 시간입니다. RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 |
duration |
휴식 시간입니다. 소수점 아래가 최대 9자리까지이고 ' |