Route Optimization API의 목표는 차량이 여러 위치를 방문하도록 차량 경로를 계획하는 것입니다. OptimizeToursRequest 객체는 이러한 차량과 위치의 속성을 설명하며 모든 엔드포인트 요청 본문의 기본 구조입니다.
OptimizeToursRequest 객체의 기본 구조 는 다음과 같습니다.
model필드에는 두 개의 키 필드가 포함된ShipmentModel메시지가 있습니다.
이 문서에서는 다음 메시지 유형을 설명합니다.
ShipmentModel: 배송 목록, 사용 가능한 차량, 관계를 설명하는 기타 객체를 포함합니다.Shipment: 차량이 방문할 위치를 설명합니다. 픽업 및 배송할 실제 패키지 또는 차량 운전자가 서비스를 제공하는 장소를 나타낼 수 있습니다.Vehicle: 배송 위치 간의 교통수단을 설명합니다. 각 차량은 실제 차량 또는 도보로 이동하는 사람에 해당합니다.
ShipmentModel
ShipmentModel 에는 경로 최적화 문제의 요소가 포함됩니다. 제약 조건을 고려하고 전체 비용을 최소화하면서 차량이 수행할 수 있는 배송 세트가 포함되어 있습니다.
아래 표에서는 ShipmentModel의 관련 속성을 설명합니다.
| 속성 | 설명 |
|---|---|
shipments 및 vehicles |
하나 이상의 배송 및 차량 의 세부정보가 포함된 필수 객체입니다. |
globalStartTime 및 globalEndTime |
모든 차량이 모든 배송을 완료해야 하는 기간의 시작과 종료 를 나타냅니다. 이러한 속성은 필수는 아니지만 최적화 도구가 시간 제약 조건을 준수할 때 가장 잘 작동하므로 포함하는 것이 좋습니다. |
속성 전체 목록은 참조 문서를 확인하세요
ShipmentModel.
ShipmentModel 예
이 예에서는 강아지 데이케어 서비스를 제공하며 요청을 빌드하기 시작합니다. 배송 및 차량은 나중에 정의하지만 먼저 영업시간과 시간당 운영 비용을 설정하려고 합니다.
이 예에서 요청의 ShipmentModel 속성 값은 다음과 같습니다.
| 속성 | 값 | 설명 |
|---|---|---|
globalStartTime |
2024-02-13T00:00:00.000Z | 영업시간의 시작 날짜 및 시간입니다. |
globalEndTime |
2024-02-14T06:00:00.000Z | 영업시간의 종료 날짜 및 시간입니다. |
다음은 예시 시나리오 값을 통합한 ShipmentModel 메시지의 코드 샘플입니다.
{ "model": { "shipments": [ ... ], "vehicles": [ ... ], "globalStartTime": "2024-02-13T00:00:00.000Z", "globalEndTime": "2024-02-14T06:00:00.000Z" } }
Shipment
Shipment 메시지 유형은 배송할 수 있는 배송 또는 경로에서 수행할 수 있는 서비스의 속성 구조를 정의합니다.
다이어그램에 표시된 것처럼 다음과 같습니다.
- A
Shipment메시지에는 실제 배송 또는 서비스의 모든 정보가 포함되어 있습니다. - 모든
Shipment메시지는shipments필드에 지정됩니다. shipments필드에는 하나 이상의Shipment메시지가 포함되어 있습니다.
A Shipment 메시지에는 하나 이상 의 pickups 또는 deliveries 객체가 필요합니다.
이러한 객체의 정의는 다음과 같습니다.
pickups는 배송의 픽업 위치를 정의합니다.deliveries는 배송의 배송 위치를 정의합니다.pickups와deliveries모두 위치 및 기타 세부정보를 정의하는VisitRequest메시지 유형을 포함합니다.
다음 표에서는 Shipment 메시지의 pickups 및 deliveries 구성에 따른 다양한 시나리오를 설명합니다.
| 시나리오 | 설명 |
|---|---|
pickups만 |
배송만 수집 하는 것으로 가정합니다. |
deliveries만 |
배송을 미리 로드 했거나 서비스를 제공 하는 것으로 가정합니다. |
pickups 및 deliveries 모두 |
할당된 차량은 먼저 픽업을 완료한 후 배송 해야 합니다. 픽업을 수행한 차량만 배송을 수행할 수 있습니다. |
여러 pickups 또는 deliveries |
배송에 pickups 또는 deliveries의 여러 가능성이 나열되어 있는 경우 최적화 도구는 비용을 최소화하고 제약 조건을 충족하는 것을 기반으로 사용할 픽업 옵션 하나와 배송 옵션 하나를 선택 합니다. |
속성 전체 목록은 참조 문서를 확인하세요
Shipment.
Shipment 예
이 예에서는 강아지 데이케어 서비스를 제공하며 집에서 강아지를 픽업하여 데이케어 센터로 배송합니다. 두 마리의 강아지의 픽업 위치를 설정하고 배송 위치를 비즈니스로 설정하려고 합니다.
- 첫 번째 강아지의 집은 샌프란시스코의 코이트 타워에 있습니다. 이 위치의 좌표는 위도 37.8024, 경도 -122.4058입니다.
- 두 번째 강아지의 집 은 샌프란시스코의 사우스 선셋 놀이터 공원에 있습니다. 이 위치의 좌표는 위도 37.7359, 경도 -122.5011입니다.
- 강아지 데이케어 센터 는 샌프란시스코의 미시온 돌로레스 공원에 있습니다. 이 위치의 좌표는 위도 37.759773, 경도 -122.427063입니다.
다음은 Shipment 메시지의 코드 샘플입니다. 여기서 shipments
객체에는 예시 좌표가 포함된 두 개의 Shipment 메시지 유형이 포함되어 있습니다.
{ "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.8024, "longitude": -122.4058 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.759773, "longitude": -122.427063 } } ] }, { "pickups": [ { "arrivalLocation": { "latitude": 37.7359, "longitude": -122.5011 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.759773, "longitude": -122.427063 } } ] } ], "vehicles": [ ... ] } }
Vehicle
Vehicle 메시지 유형은 경로에서 배송을 수행할 수 있는 차량의 속성 구조를 정의합니다.
다이어그램에 표시된 것처럼 다음과 같습니다.
- A
Vehicle메시지에는 실제 차량의 모든 정보가 포함되어 있습니다. - 모든
Vehicle메시지는vehicles필드에 지정됩니다. vehicles필드에는 여러Vehicle메시지가 포함되어 있습니다.
다음 표에서는 Vehicle의 관련 속성을 설명합니다.
| 속성 | 설명 |
|---|---|
startLocation 및 endLocation |
최종 최적화된 경로의 일부인 차량의 시작 및 종료 위치 입니다. 정의되지 않은 경우 기본적으로 첫 번째 배송 픽업 및 마지막 배송 위치로 설정됩니다. |
costPerHour, costPerKilometer, costPerTraveledHour |
차량별 비용 매개변수 입니다. API가 최적화된 경로를 반환하려면 요청에 하나 이상 의 비용 매개변수가 있는 것이 좋습니다. 비용에 대한 자세한 내용은 비용 모델 주요 개념을 참고하세요. |
startTimeWindows 및 endTimeWindows |
차량이 경로에서 작동할 수 있는 기간 을 정의합니다. 이는 ShipmentModel에 설정된 globalStartTime 및 globalEndTime 기간 내에 있어야 합니다. 이 속성은 필수는 아니지만 최적화 도구가 시간 제약 조건을 준수할 때 가장 잘 작동하므로 포함하는 것이 좋습니다. |
Vehicle 예
이 예에서는 강아지 데이케어 서비스를 제공하며 하루의 시작과 끝에 차량의 위치와 가스 소비량을 정의하려고 합니다. 차량의 근무 시간은 ShipmentModel 객체의 globalStartTime 및 globalEndTime 속성에 정의된 시간과 일치하므로 지정할 필요가 없습니다.
이 예에서 요청의 Vehicle 속성 값은 다음과 같습니다.
| 속성 | 값 | 설명 |
|---|---|---|
startLocation |
latitude: 37.759773, longitude: -122.427063 |
차량 경로의 시작 좌표입니다. 이는 샌프란시스코의 미시온 돌로레스 공원에 있는 강아지 데이케어 센터의 위치와 일치합니다. |
endLocation |
latitude: 37.759773, longitude: -122.427063 |
차량 경로의 종료 좌표입니다. 이는 샌프란시스코의 미시온 돌로레스 공원에 있는 강아지 데이케어 센터의 위치와 일치합니다. |
costPerHour |
27 | 강아지 데이케어 센터 차량을 운전하는 운전자에게 지급하는 금액입니다. 운전자에게 시간당 27달러를 지급합니다. |
다음은 Vehicle 메시지의 코드 샘플로,
예시 시나리오 값을 통합한 것입니다.
{ "model": { "shipments": [ ... ], "vehicles": [ { "startLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "endLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "costPerHour": 27 } ] } }
속성 전체 목록은 참조 문서를 확인하세요
Vehicle.
전체 요청 예
다음 코드 샘플은 이
문서에 표시된
ShipmentModel, Shipment, Vehicle 예시를 결합하여 전체 요청 예시를 제공합니다.
{ "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.8024, "longitude": -122.4058 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.759773, "longitude": -122.427063 } } ] }, { "pickups": [ { "arrivalLocation": { "latitude": 37.7359, "longitude": -122.5011 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.759773, "longitude": -122.427063 } } ] } ], "vehicles": [ { "startLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "endLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "costPerHour": 27 } ], "globalStartTime": "2024-02-13T00:00:00.000Z", "globalEndTime": "2024-02-14T06:00:00.000Z" } }