Route Optimization API의 목표는 차량 집합이 일련의 위치를 방문하도록 경로를 계획하는 것입니다. OptimizeToursRequest
객체는 이러한 차량과 위치의 속성을 설명하며 모든 엔드포인트의 요청 본문의 기본 구조입니다.
OptimizeToursRequest
객체의 기본 구조는 다음과 같습니다.
model
필드에는 두 개의 키 필드(
이 문서에서는 다음 메시지 유형을 설명합니다.
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
메시지 유형은 경로에서 배송될 수 있는 상품 또는 수행될 수 있는 서비스의 속성 구조를 정의합니다.
다이어그램에 표시된 것처럼 다음과 같습니다.
Shipment
메시지에는 실제 배송 또는 서비스에 관한 모든 정보가 포함됩니다.- 모든
Shipment
메시지는shipments
필드에 지정됩니다. shipments
필드에는 하나 이상의Shipment
메시지가 포함되어 있습니다.
Shipment
메시지에는 하나 이상의 pickups
또는 deliveries
객체가 필요합니다.
이러한 객체의 정의는 다음과 같습니다.
pickups
은 배송의 수령 위치를 정의합니다.deliveries
은 배송의 배송 위치를 정의합니다.pickups
와deliveries
모두 위치와 기타 세부정보를 정의하는VisitRequest
메시지 유형을 포함합니다.
다음 표에서는 Shipment
메시지에서 pickups
및 deliveries
의 구성에 따른 다양한 시나리오를 설명합니다.
시나리오 | 설명 |
---|---|
pickups 만 지원 |
배송 상품만 수령하는 것으로 가정합니다. |
deliveries 만 지원 |
배송을 미리 로드했거나 서비스를 제공하는 것으로 가정합니다. |
pickups 및 deliveries 모두 |
할당된 차량은 먼저 픽업을 완료한 후 배송을 완료해야 합니다. 픽업을 수행한 차량만 배송을 수행할 수 있습니다. |
여러 pickups 또는 deliveries |
배송에 pickups 또는 deliveries 에 대한 여러 가능성이 나열되어 있는 경우 최적화 프로그램은 비용을 최소화하고 제약 조건을 충족하는 것을 기반으로 사용할 수령 옵션 하나와 배송 옵션 하나를 선택합니다. |
Shipment
의 전체 속성 목록은 참조 문서를 확인하세요.
Shipment
함수의 예
이 예에서는 집에서 개를 데려와 데이케어에 데려다주는 반려견 데이케어 서비스가 있습니다. 두 마리 개의 픽업 위치를 설정하고 배송 위치를 비즈니스로 설정하려고 합니다.
- 첫 번째 개's home은 샌프란시스코의 코이트 타워에 있습니다. 이 위치의 좌표는 위도 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
메시지 유형은 경로에서 배송을 수행할 수 있는 차량의 속성 구조를 정의합니다.
다이어그램에 표시된 것처럼 다음과 같습니다.
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" } }