Gửi OptimizeToursRequest chứa ShipmentModel và trả về OptimizeToursResponse chứa ShipmentRoute, là một tập hợp các tuyến đường mà xe sẽ thực hiện để giảm thiểu tổng chi phí.
Mô hình ShipmentModel chủ yếu bao gồm Shipment cần được thực hiện và Vehicle có thể dùng để vận chuyển Shipment. ShipmentRoute chỉ định Shipment cho Vehicle. Cụ thể hơn, họ chỉ định một loạt Visit cho mỗi xe, trong đó Visit tương ứng với VisitRequest, tức là một lượt đến lấy hàng hoặc giao hàng cho Shipment.
Mục tiêu là chỉ định ShipmentRoute cho Vehicle để giảm thiểu tổng chi phí, trong đó chi phí có nhiều thành phần được xác định trong ShipmentModel.
Yêu cầu HTTP
POST https://routeoptimization.googleapis.com/v1/{parent=projects/*}:optimizeTours
URL sử dụng cú pháp Chuyển mã gRPC.
Tham số đường dẫn
| Tham số | |
|---|---|
parent |
Bắt buộc. Dự án hoặc vị trí mục tiêu để thực hiện cuộc gọi. Định dạng:
Giá trị |
Nội dung yêu cầu
Nội dung yêu cầu chứa dữ liệu với cấu trúc sau:
| Biểu diễn dưới dạng JSON |
|---|
{ "timeout": string, "model": { object ( |
| Trường | |
|---|---|
timeout |
Nếu bạn đặt thời gian chờ này, máy chủ sẽ trả về phản hồi trước khi hết thời gian chờ hoặc trước khi đến thời hạn của máy chủ cho các yêu cầu đồng bộ, tuỳ theo thời điểm nào đến trước. Đối với các tài nguyên không đồng bộ, máy chủ sẽ tạo một giải pháp (nếu có thể) trước khi hết thời gian chờ. |
model |
Mô hình lô hàng cần giải quyết. |
solvingMode |
Theo mặc định, chế độ giải là |
searchMode |
Chế độ tìm kiếm được dùng để giải quyết yêu cầu. |
injectedFirstSolutionRoutes[] |
Hướng dẫn thuật toán tối ưu hoá tìm ra giải pháp đầu tiên tương tự như giải pháp trước đó. Mô hình bị ràng buộc khi giải pháp đầu tiên được xây dựng. Mọi lô hàng không được thực hiện trên một tuyến đường đều được bỏ qua ngầm định trong giải pháp đầu tiên, nhưng có thể được thực hiện trong các giải pháp tiếp theo. Giải pháp phải đáp ứng một số giả định cơ bản về tính hợp lệ:
Nếu giải pháp được chèn không khả thi, thì hệ thống không nhất thiết phải trả về lỗi xác thực mà có thể trả về lỗi cho biết giải pháp không khả thi. |
injectedSolutionConstraint |
Ràng buộc thuật toán tối ưu hoá để tìm ra giải pháp cuối cùng tương tự như giải pháp trước đó. Ví dụ: bạn có thể dùng thuộc tính này để cố định các phần của tuyến đường đã hoàn thành hoặc sắp hoàn thành nhưng không được sửa đổi. Nếu giải pháp được chèn không khả thi, thì hệ thống không nhất thiết phải trả về lỗi xác thực mà có thể trả về lỗi cho biết giải pháp không khả thi. |
refreshDetailsRoutes[] |
Nếu không trống, các tuyến đường đã cho sẽ được làm mới mà không sửa đổi trình tự ghé thăm hoặc thời gian di chuyển cơ bản: chỉ các thông tin chi tiết khác mới được cập nhật. Thao tác này không giải quyết được mô hình. Kể từ tháng 11 năm 2020, thuộc tính này chỉ điền sẵn các hình nhiều đường của những tuyến đường không trống và yêu cầu Trường Bạn không được sử dụng trường này cùng với
|
interpretInjectedSolutionsUsingLabels |
Nếu đúng:
Cách diễn giải này áp dụng cho các trường Nếu đúng, nhãn trong các danh mục sau đây chỉ được xuất hiện tối đa một lần trong danh mục của chúng:
Nếu một Việc xoá các lượt ghé thăm tuyến đường hoặc toàn bộ tuyến đường khỏi một giải pháp được chèn có thể ảnh hưởng đến các quy tắc ràng buộc ngầm định, dẫn đến thay đổi trong giải pháp, lỗi xác thực hoặc không khả thi. LƯU Ý: Phương thức gọi phải đảm bảo rằng mỗi |
considerRoadTraffic |
Cân nhắc thông tin ước tính lưu lượng truy cập khi tính toán các trường |
populatePolylines |
Nếu đúng, các hình nhiều đường sẽ được điền sẵn trong |
populateTransitionPolylines |
Nếu đúng, hình nhiều đường và mã thông báo tuyến đường sẽ được điền vào phản hồi |
allowLargeDeadlineDespiteInterruptionRisk |
Nếu bạn đặt giá trị này, thì yêu cầu có thể có thời hạn (xem https://grpc.io/blog/deadlines) lên đến 60 phút. Nếu không, thời hạn tối đa chỉ là 30 phút. Xin lưu ý rằng các yêu cầu có thời gian hoạt động dài có nguy cơ bị gián đoạn cao hơn đáng kể (nhưng vẫn ở mức thấp). |
useGeodesicDistances |
Nếu đúng, quãng đường di chuyển sẽ được tính bằng khoảng cách trắc địa thay vì khoảng cách trên Google Maps và thời gian di chuyển sẽ được tính bằng khoảng cách trắc địa với tốc độ do |
label |
Nhãn có thể được dùng để xác định yêu cầu này, được báo cáo lại trong |
geodesicMetersPerSecond |
Khi |
maxValidationErrors |
Cắt bớt số lỗi xác thực được trả về. Những lỗi này thường được đính kèm vào tải trọng lỗi INVALID_ARGUMENT dưới dạng thông tin chi tiết về lỗi BadRequest (https://cloud.google.com/apis/design/errors#error_details), trừ phi solvingMode=VALIDATE_ONLY: hãy xem trường |
Nội dung phản hồi
Nếu thành công, nội dung phản hồi sẽ chứa một thực thể của OptimizeToursResponse.
Phạm vi uỷ quyền
Yêu cầu phạm vi OAuth sau:
https://www.googleapis.com/auth/cloud-platform
Quyền IAM
Cần có quyền IAM sau đây đối với tài nguyên parent:
routeoptimization.locations.use
Để biết thêm thông tin, hãy xem tài liệu về IAM.