Danh sách tham số

Trang sau đây chứa các bảng tham số theo thứ tự bảng chữ cái cho các thành phần sau của phương thức optimizeTours của Route Optimization API:

Các bảng tham số này chỉ liệt kê và mô tả ngắn gọn các đối tượng cấp cao nhất và tham số chính để dễ khám phá. Để xem danh sách đầy đủ kèm theo nội dung mô tả chi tiết và tất cả các tham số lồng nhau, hãy xem tài liệu tham khảo API.

Nội dung yêu cầu

Cấu trúc dữ liệu của nội dung yêu cầu.

Nội dung yêu cầu bao gồm các phần tử sau, được minh hoạ trong sơ đồ bên phải và được liệt kê trong bảng dưới đây:

  • OptimizeToursRequest: Đối tượng yêu cầu cấp cao nhất chứa mô hình và các tham số giải quyết.
    • ShipmentModel: Cấu trúc dữ liệu cốt lõi chứa các lô hàng, xe và các quy tắc ràng buộc chung.
      • Shipment: Một nhiệm vụ có các điểm đến lấy hàng và điểm đến giao hàng.
        • VisitRequest: Vị trí và các quy tắc ràng buộc đối với việc đến lấy hàng hoặc giao hàng.
      • Vehicle: Một phương tiện có thể thực hiện các chuyến hàng.
Cha mẹ Tham số Loại khách sạn Mô tả
OptimizeToursRequest allowLargeDeadlineDespiteInterruptionRisk boolean (true/false) Nếu true, yêu cầu sẽ được xử lý ngay cả khi thời gian chờ được đặt thành một giá trị lớn (hơn 30 phút) có nguy cơ gây gián đoạn máy chủ.
considerRoadTraffic boolean (true/false) Nếu true, hãy sử dụng dữ liệu giao thông để định tuyến. Nếu là false, thì chỉ sử dụng tốc độ của mạng lưới đường bộ.
geodesicMetersPerSecond số Khi useGeodesicDistances là true, tốc độ này sẽ được dùng để tính thời gian di chuyển.
injectedFirstSolutionRoutes[] mảng đối tượng (ShipmentRoute) Các tuyến đường từ một giải pháp trước đó để bắt đầu tối ưu hoá.
injectedSolutionConstraint đối tượng (InjectedSolutionConstraint) Ràng buộc giải pháp sao cho tương tự như các tuyến đường hiện có, chỉ định thuộc tính nào phải được giữ nguyên và thuộc tính nào có thể được nới lỏng.
interpretInjectedSolutionsUsingLabels boolean (true/false) Nếu true, thì sẽ so khớp các lô hàng/phương tiện trong tuyến đường được chèn theo label thay vì chỉ mục mảng.
label chuỗi Nhãn tuỳ ý để xác định yêu cầu, được trả về trong phản hồi.
maxValidationErrors số nguyên Chỉ định số lượng lỗi xác thực tối đa cần trả về. Nếu bạn không chỉ định, thì giới hạn mặc định sẽ được áp dụng.
model đối tượng (ShipmentModel) Bắt buộc. Tập hợp các phương tiện và lô hàng cần tối ưu hoá.
populatePolylines boolean (true/false) Nếu là true, thì sẽ trả về hình nhiều đường được mã hoá cho các tuyến đường.
populateTransitionPolylines boolean (true/false) Nếu true, thì hàm này sẽ trả về các hình nhiều đường được mã hoá cho từng lượt chuyển đổi giữa các lượt ghé thăm.
refreshDetailsRoutes[] mảng đối tượng (ShipmentRoute) Danh sách các tuyến đường cần làm mới. Thao tác này sẽ tính toán lại các hình nhiều đường, thời lượng và khoảng cách cho các tuyến đường hiện có mà không sửa đổi trình tự ghé thăm.
searchMode enum (SearchMode) RETURN_FAST (kết quả nhanh) hoặc CONSUME_ALL_AVAILABLE_TIME (chất lượng tốt nhất trong thời gian chờ).
solvingMode enum (SolvingMode) DEFAULT_SOLVE (mặc định) hoặc VALIDATE_ONLY để xác thực mô hình mà không cần giải quyết.
timeout Thời lượng Thời lượng tối đa mà trình giải nên chạy (ví dụ: "30 giây", "300 giây").
useGeodesicDistances boolean (true/false) Nếu true, thì khoảng cách và thời gian di chuyển sẽ được tính bằng khoảng cách trắc địa (đường thẳng) và tốc độ geodesicMetersPerSecond.
ShipmentModel
(Một phần của OptimizeToursRequest)
durationDistanceMatrices[] mảng đối tượng (DurationDistanceMatrix) Chỉ định ma trận khoảng cách và thời lượng tuỳ chỉnh dùng để định tuyến giữa các vị trí.
durationDistanceMatrixDstTags[] mảng chuỗi Thẻ xác định điểm đến (cột) cho ma trận khoảng cách và thời lượng tuỳ chỉnh.
durationDistanceMatrixSrcTags[] mảng chuỗi Thẻ xác định nguồn (hàng) cho ma trận khoảng cách và thời lượng tuỳ chỉnh.
globalDurationCostPerHour số Chi phí mỗi giờ của khoảng thời gian toàn cục của tuyến đường, từ thời điểm bắt đầu sớm nhất của xe đến thời điểm kết thúc muộn nhất của xe.
globalEndTime Dấu thời gian Thời gian kết thúc muộn nhất cho mọi sự kiện trong mô hình.
globalStartTime Dấu thời gian Thời gian bắt đầu sớm nhất cho bất kỳ sự kiện nào trong mô hình.
maxActiveVehicles số nguyên Số lượng xe tối đa được phép hoạt động trong giải pháp.
precedenceRules[] mảng đối tượng (PrecedenceRule) Các quy tắc xác định quy tắc ràng buộc về thứ tự giữa các lô hàng cụ thể.
shipments[] mảng đối tượng (Shipment) Danh sách các lô hàng cần được xử lý.
shipmentTypeIncompatibilities[] mảng đối tượng (ShipmentTypeIncompatibility) Quy tắc ngăn không cho cùng một xe vận chuyển một số loại lô hàng nhất định.
shipmentTypeRequirements[] mảng đối tượng (ShipmentTypeRequirement) Các quy tắc yêu cầu các lô hàng thuộc một số loại nhất định phải được cùng một xe vận chuyển.
transitionAttributes[] mảng đối tượng (TransitionAttributes) Chỉ định chi phí bổ sung, độ trễ và giới hạn khoảng cách cho các lượt chuyển đổi giữa các lượt ghé thăm có thẻ cụ thể.
vehicles[] mảng đối tượng (Vehicle) Danh sách các xe có thể thực hiện lô hàng.
Shipment
(Một phần của ShipmentModel)
allowedVehicleIndices[] mảng số nguyên Chỉ mục của các xe được phép thực hiện lô hàng này.
costsPerVehicle[] bản đồ (khoá: số nguyên, giá trị: số) Chi phí bổ sung phát sinh nếu một phương tiện cụ thể vận chuyển lô hàng này.
costsPerVehicleIndices[] mảng số nguyên Chỉ mục của các xe áp dụng giá trị costsPerVehicle.
deliveries[] mảng đối tượng (VisitRequest) Các phương án thay thế để giao hàng.
ignore boolean (true/false) Nếu true, lô hàng sẽ bị bỏ qua và không được dùng để tối ưu hoá.
label chuỗi Nhãn do người dùng xác định để xác định lô hàng, được trả về trong phản hồi.
loadDemands map (key: string, value: Load) Sức chứa cần thiết (ví dụ: trọng lượng, thể tích) để vận chuyển lô hàng này.
penaltyCost số Chi phí nếu lô hàng không được vận chuyển. Nếu bạn không đặt, thì lô hàng là bắt buộc.
pickups[] mảng đối tượng (VisitRequest) Các phương án thay thế để lấy hàng.
pickupToDeliveryAbsoluteDetourLimit Thời lượng Thời gian đi đường vòng tối đa được phép giữa điểm đến lấy hàng và điểm giao hàng so với đường đi thẳng.
pickupToDeliveryRelativeDetourLimit số Đường vòng tương đối tối đa được phép cho lô hàng (ví dụ: giá trị 2.0 có nghĩa là tổng thời gian tối đa có thể gấp 2 lần thời gian di chuyển trực tiếp).
pickupToDeliveryTimeLimit Thời lượng Thời lượng tối đa cho phép từ khi bắt đầu lấy hàng đến khi bắt đầu giao hàng.
shipmentType chuỗi Phân loại kiểu dùng cho các quy tắc về tính không tương thích và yêu cầu.
VisitRequest
(Một thành phần của pickups và deliveries trong Shipment)
arrivalLocation đối tượng (LatLng) Vị trí địa lý của điểm đến dưới dạng toạ độ vĩ độ/kinh độ.
arrivalWaypoint đối tượng (Waypoint) Vị trí mà xe đến để thực hiện chuyến ghé thăm. Được xác định bằng toạ độ hoặc mã địa điểm.
cost số Chi phí phát sinh nếu trình giải quyết chọn yêu cầu cụ thể này về lượt ghé thăm.
departureLocation đối tượng (LatLng) Vị trí khởi hành theo toạ độ địa lý (vĩ độ/kinh độ).
departureWaypoint đối tượng (Waypoint) Vị trí mà xe khởi hành sau khi hoàn tất chuyến thăm. Nếu bạn bỏ qua, thì giá trị này được giả định là giống với arrivalWaypoint.
duration Thời lượng Thời gian ghé thăm (thời gian phục vụ), ví dụ: thời gian cần để chất/dỡ hàng.
label chuỗi Nhãn do người dùng xác định cho yêu cầu ghé thăm cụ thể này, được trả về trong phản hồi.
loadDemands map (key: string, value: Load) Yêu cầu chỉ định thay đổi về tải trọng trong lượt ghé thăm này (ví dụ: -1 để giao một gói hàng).
tags[] mảng chuỗi Thẻ được đính kèm vào yêu cầu truy cập này. Các thông tin này được dùng để tính thời gian di chuyển giữa lượt ghé thăm này và các lượt ghé thăm khác bằng transitionAttributes.
timeWindows[] mảng đối tượng (TimeWindow) Khung thời gian được phép đến cho lượt ghé thăm này.
visitTypes[] mảng chuỗi Chuỗi mô tả loại lượt ghé thăm (ví dụ: "giao hàng", "lắp đặt"). Dùng để áp dụng extraVisitDurationForVisitType từ mẫu xe.
Vehicle
(Một phần của ShipmentModel)
breakRule đối tượng (BreakRule) Xác định quy tắc cho thời gian nghỉ giải lao (ví dụ: thời gian nghỉ trưa bắt buộc).
costPerHour số Chi phí mỗi giờ của tổng thời gian của tuyến đường.
costPerKilometer số Chi phí cho mỗi km đã đi.
costPerTraveledHour số Chi phí mỗi giờ khi xe đang di chuyển.
endLocation đối tượng (LatLng) Vị trí kết thúc theo toạ độ địa lý dưới dạng toạ độ vĩ độ/kinh độ.
endTags[] mảng chuỗi Thẻ xác định trạng thái kết thúc của xe, dùng cho các thuộc tính chuyển đổi.
endTimeWindows[] mảng đối tượng (TimeWindow) Khoảng thời gian cho phép xe kết thúc lộ trình.
endWaypoint đối tượng (Waypoint) Vị trí kết thúc theo địa lý sử dụng Điểm tham chiếu (toạ độ hoặc mã địa điểm).
extraVisitDurationForVisitType map (key: string, value: Duration) Thêm thời lượng cho các lượt ghé thăm dựa trên visitType.
fixedCost số Chi phí cố định được áp dụng nếu xe được sử dụng, bất kể quãng đường hoặc thời gian của tuyến đường.
ignore boolean (true/false) Nếu true, xe sẽ bị bỏ qua và không được dùng để tối ưu hoá.
label chuỗi Nhãn do người dùng xác định cho xe, được trả về trong phản hồi.
loadLimits map (key: string, value: LoadLimit) Sức chứa của xe (ví dụ: trọng lượng tối đa, thể tích tối đa).
routeDistanceLimit đối tượng (DistanceLimit) Giới hạn cứng hoặc mềm về tổng quãng đường của tuyến đường của xe.
routeDurationLimit đối tượng (DurationLimit) Giới hạn cứng hoặc mềm về tổng thời lượng của tuyến đường của xe.
routeModifiers đối tượng (RouteModifiers) Một hoặc nhiều quy tắc ràng buộc như tránh trạm thu phí, đường cao tốc hoặc phà.
startLocation đối tượng (LatLng) Vị trí bắt đầu theo toạ độ địa lý dưới dạng toạ độ vĩ độ/kinh độ.
startTags[] mảng chuỗi Các thẻ xác định trạng thái bắt đầu của xe, được dùng cho các thuộc tính chuyển đổi.
startTimeWindows[] mảng đối tượng (TimeWindow) Khoảng thời gian cho phép xe bắt đầu lộ trình.
startWaypoint đối tượng (Waypoint) Vị trí bắt đầu theo địa lý sử dụng Điểm tham chiếu (toạ độ hoặc mã địa điểm).
travelDurationLimit đối tượng (DurationLimit) Giới hạn cứng hoặc mềm về tổng thời gian di chuyển (không bao gồm thời gian chờ/phục vụ) của xe.
travelDurationMultiple số Hệ số nhân áp dụng cho thời gian di chuyển (ví dụ: 1,5 khiến thời gian di chuyển chậm hơn 50%).
travelMode enum (TravelMode) Phương thức di chuyển (ví dụ: DRIVING, WALKING). Ảnh hưởng đến thời gian và quãng đường di chuyển.
unloadingPolicy enum (UnloadingPolicy) Xác định thứ tự dỡ hàng (ví dụ: LIFO hoặc LAST_IN_FIRST_OUT).
usedIfRouteIsEmpty boolean (true/false) Nếu true, xe được coi là đã qua sử dụng ngay cả khi không có lô hàng. Tuyến đường này có chi phí cố định và di chuyển giữa vị trí bắt đầu và vị trí kết thúc.

Nội dung phản hồi

Cấu trúc dữ liệu của nội dung phản hồi.

Nội dung phản hồi bao gồm các phần tử sau đây, được minh hoạ trong biểu đồ bên phải và được liệt kê trong bảng dưới đây:

  • OptimizeToursResponse: Đối tượng phản hồi cấp cao nhất chứa các tuyến đường và chỉ số được tối ưu hoá.
    • Metrics: Tổng chi phí và số liệu thống kê về việc thực thi cho giải pháp.
    • ShipmentRoute: Trình tự các lượt ghé thăm và lộ trình di chuyển được chỉ định cho một chiếc xe.
      • Visit: Điểm dừng trên tuyến đường để lấy hàng hoặc giao hàng.
      • Transition: Đường đi và thời gian di chuyển giữa hai điểm dừng trên tuyến đường.
      • AggregatedMetrics: Tổng thời lượng, quãng đường và các chỉ số khác. Phần tử này có thể xuất hiện trong cả Metrics và ShipmentRoute.
Cha mẹ Tham số Loại khách sạn Mô tả
OptimizeToursResponse metrics đối tượng (Metrics) Các chỉ số tổng hợp cho giải pháp, bao gồm tổng chi phí, tổng quãng đường, tổng thời gian và số lần sử dụng xe.
requestLabel chuỗi Nhãn được sao chép từ trường label của yêu cầu. Dùng để liên kết phản hồi với yêu cầu ban đầu.
routes[] mảng đối tượng (ShipmentRoute) Danh sách các tuyến đường được tính toán cho từng xe. Chứa một mục cho mỗi xe, bất kể mức sử dụng.
skippedShipments[] mảng đối tượng (SkippedShipment) Danh sách các lô hàng đã bị bỏ qua (không được giao), cùng với lý do bỏ qua.
validationErrors[] mảng đối tượng (OptimizeToursValidationError) Danh sách lỗi xác thực được tìm thấy trong mô hình đầu vào. Trường này được điền sẵn nếu solvingMode được đặt thành VALIDATE_ONLY hoặc nếu xảy ra lỗi trong quá trình giải.
Metrics
(Một phần của OptimizeToursResponse)
aggregatedRouteMetrics đối tượng (AggregatedMetrics) Số liệu thống kê tổng hợp trên tất cả các tuyến đường, chẳng hạn như tổng quãng đường di chuyển, tổng thời gian và thời gian chờ.
costs map (key: string, value: number) Bảng chi tiết chi phí theo loại (ví dụ: "model.vehicles.cost_per_kilometer", "model.shipments.penalty_cost").
earliestVehicleStartTime Dấu thời gian Thời gian bắt đầu sớm nhất trong số tất cả các xe được sử dụng.
latestVehicleEndTime Dấu thời gian Thời gian kết thúc muộn nhất trong số tất cả xe đã qua sử dụng.
skippedMandatoryShipmentCount số nguyên Số lô hàng bắt buộc đã bị bỏ qua.
totalCost số Tổng chi phí của giải pháp, bằng tổng chi phí của tất cả các tuyến đường và hình phạt cho lô hàng bị bỏ qua.
usedVehicleCount số nguyên Số lượng xe được sử dụng trong giải pháp.
AggregatedMetrics
(Một phần của Metrics và ShipmentRoute)
breakDuration Thời lượng Tổng thời gian nghỉ giải lao trên tất cả các tuyến đường.
costs map (key: string, value: number) Bảng chi tiết chi phí theo loại (ví dụ: "model.vehicles.cost_per_kilometer", "model.shipments.penalty_cost").
delayDuration Thời lượng Tổng thời gian trễ trên tất cả các tuyến đường.
earliestVehicleStartTime Dấu thời gian Thời gian bắt đầu sớm nhất trong số tất cả các phương tiện được sử dụng.
latestVehicleEndTime Dấu thời gian Thời gian kết thúc muộn nhất trong số tất cả xe đã qua sử dụng.
maxLoads map (key: string, value: VehicleLoad) Tải trọng tối đa mà bất kỳ xe nào chở tại bất kỳ thời điểm nào trong giải pháp, được khoá theo loại tải trọng.
performedShipmentCount số nguyên Tổng số lô hàng được giao trên tất cả các xe.
skippedMandatoryShipmentCount số nguyên Số lô hàng bắt buộc đã bị bỏ qua.
totalCost số Tổng chi phí của giải pháp, bằng tổng chi phí của tất cả các tuyến đường và hình phạt cho lô hàng bị bỏ qua.
totalDuration Thời lượng Tổng thời lượng của tất cả các tuyến đường (di chuyển + chờ + trễ + nghỉ + ghé thăm).
travelDistanceMeters số Tổng quãng đường di chuyển (tính bằng mét) trên tất cả các tuyến đường.
travelDuration Thời lượng Tổng thời gian di chuyển trên tất cả các tuyến đường.
usedVehicleCount số nguyên Số lượng xe được sử dụng trong giải pháp.
visitDuration Thời lượng Tổng thời gian thực hiện các lượt ghé thăm (bốc/dỡ hàng) trên tất cả các tuyến đường.
waitDuration Thời lượng Tổng thời gian chờ trên tất cả các tuyến đường.
ShipmentRoute
(Một phần của OptimizeToursResponse)
breaks[] mảng đối tượng (Break) Danh sách các điểm dừng nghỉ của xe trong suốt tuyến đường.
hasTrafficInfeasibilities boolean (true/false) Cho biết liệu tuyến đường có bất kỳ vấn đề nào liên quan đến giao thông hay không.
metrics đối tượng (AggregatedMetrics) Các chỉ số dành riêng cho tuyến đường này, chẳng hạn như tổng quãng đường và thời gian di chuyển.
routeCosts map (key: string, value: number) Bảng chi tiết về chi phí cho tuyến đường này. Khoá là loại chi phí (ví dụ: "cost_per_hour") và giá trị là số tiền.
routePolyline đối tượng (EncodedPolyline) Hình nhiều đường được mã hoá đại diện cho toàn bộ đường đi của tuyến đường về mặt địa lý.
routeTotalCost số Tổng chi phí của tuyến đường, tổng của tất cả chi phí trong bản đồ routeCosts.
transitions[] mảng đối tượng (Transition) Danh sách theo thứ tự các lượt di chuyển (chặng di chuyển) kết nối các lượt ghé thăm.
vehicleEndTime Dấu thời gian Thời điểm xe hoàn tất tuyến đường.
vehicleIndex số nguyên Chỉ mục của xe trong ShipmentModel nguồn thực hiện tuyến đường này.
vehicleLabel chuỗi Nhãn do người dùng xác định của xe, được sao chép từ mô hình yêu cầu.
vehicleStartTime Dấu thời gian Thời điểm xe bắt đầu hành trình.
visits[] mảng đối tượng (Visit) Trình tự ghé thăm (lấy hàng và giao hàng) theo thứ tự mà xe thực hiện trên tuyến đường này.
Visit
(Một phần của ShipmentRoute)
detour Thời lượng Thời gian đi đường vòng phát sinh thêm do chuyến ghé thăm này so với tuyến đường trực tiếp giữa chuyến ghé thăm trước và chuyến ghé thăm tiếp theo.
isPickup boolean (true/false) Nếu true, thì đây là lượt ghé thăm để lấy hàng. Nếu là false, thì đó là một lần phân phối.
loadDemands map (key: string, value: Load) Nhu cầu tải được đáp ứng trong lượt ghé thăm này (ví dụ: -1 cho một lượt giao hàng). Đây là bản sao của nhu cầu tải VisitRequest tương ứng.
shipmentIndex số nguyên Chỉ mục của trường Shipment trong mô hình nguồn mà lượt truy cập này phục vụ.
shipmentLabel chuỗi Nhãn của lô hàng, được sao chép từ ShipmentModel.
startTime Dấu thời gian Thời gian bắt đầu theo lịch của lượt ghé thăm.
visitLabel chuỗi Nhãn của yêu cầu truy cập, được sao chép từ VisitRequest trong mô hình.
visitRequestIndex số nguyên Chỉ mục của VisitRequest trong danh sách lấy hàng hoặc giao hàng của lô hàng mà lượt ghé thăm này tương ứng.
Transition
(Một phần của ShipmentRoute)
breakDuration Thời lượng Thời lượng nghỉ giải lao trong quá trình chuyển đổi này.
delayDuration Thời lượng Thời gian trễ phát sinh trong quá trình chuyển đổi này (ví dụ: đến sớm và chờ một khoảng thời gian).
routePolyline đối tượng (EncodedPolyline) Hình nhiều đường được mã hoá biểu thị đường đi của quá trình chuyển đổi cụ thể này.
routeToken chuỗi Mã thông báo mờ có thể được truyền đến SDK Điều hướng của Google để tạo lại tuyến đường trong quá trình điều hướng.
startTime Dấu thời gian Thời gian bắt đầu của quá trình chuyển đổi này.
totalDuration Thời lượng Tổng thời gian chuyển tiếp, bao gồm cả thời gian di chuyển, chờ đợi, nghỉ giải lao và chậm trễ.
trafficInfoUnavailable boolean (true/false) Nếu là true, thì tức là không có dữ liệu lưu lượng truy cập cho quá trình chuyển đổi này.
travelDistanceMeters số Quãng đường đã đi trong quá trình chuyển đổi này, tính bằng mét.
travelDuration Thời lượng Thời gian di chuyển trong quá trình chuyển đổi này.
vehicleLoads map (key: string, value: VehicleLoad) Tải trọng mà xe chở trong quá trình chuyển đổi này, được xác định theo loại tải trọng (ví dụ: "trọng lượng").
waitDuration Thời lượng Thời gian chờ trước khi lượt truy cập tiếp theo có thể bắt đầu.