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
함수의 예
이 예에서는 집에서 개를 데려와 데이케어 센터로 데려다주는 반려견 데이케어 서비스가 있습니다. 두 마리 개의 픽업 위치를 설정하고 배송 위치를 비즈니스로 설정하려고 합니다.
- 첫 번째 강아지 집은 샌프란시스코의 코이트 타워에 있습니다. 이 위치의 좌표는 위도 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" } }