Jak opisano pokrótce w sekcji Omówienie optymalizacji trasy, podstawowe żądanie składa się z elementów Model, Przesyłki i Pojazdy jako wymagane podmioty:
- Model przechwytuje ustawienia i ograniczenia dla całego żądania,
obejmujące zarówno
Shipments
, jak iVehicles
. - Przesyłki przedstawiają zadania lub rzeczywiste przesyłki, które obejmują odbiór
czas dostawy:
VisitRequest
. Przesyłki mają lokalne ustawienia i ograniczenia. - Pojazdy to pojazdy, kierowcy lub personel. Pojazdy mają też lokalnych ustawień i ograniczeń.
Właściwości każdego elementu opisują część problemu optymalizacji w na określonym poziomie szczegółowości. Ograniczenia dotyczące całego modelu są stosowane do wszystkich przesyłek i pojazdów, z uwzględnieniem ograniczeń i właściwości określonych w dostawach dotyczą tylko jednej przesyłki lub pojazdu.
Pełną dokumentację poszczególnych typów wiadomości znajdziesz w dokumentacji referencyjnej
dla ShipmentModel
(REST, gRPC), Shipment
(REST, gRPC),
i Vehicle
(REST, gRPC).
OptimizeToursRequest
miejsca zakwaterowania
Niektóre często używane właściwości wiadomości OptimizeToursRequest
najwyższego poziomu
(REST, gRPC) obejmują te elementy:
searchMode
wskazuje, czy zwrócić pierwsze satysfakcjonujące rozwiązanie. określone ograniczenia lub znaleźć najlepsze możliwe rozwiązanie w zbiorze .considerRoadTraffic
określa, czy używany jest rzeczywisty ruch wyznaczania tras i szacowania szacowanego czasu dotarcia na miejsce.populateTransitionPolylines
określa, czy linie łamane trasy są .
Właściwości modelu
Niektóre często używane właściwości wiadomości ShipmentModel
(REST,
gRPC) obejmują:
globalStartTime
to najwcześniejszy czas rozpoczęcia tras na wszystkich pojazdów i ładunków. Żaden pojazd nie może rozpocząć pierwszego przenoszenia. wysyłek przed tym terminem.globalEndTime
przedstawia najnowszy czas zakończenia tras we wszystkich pojazdach i przesyłki. Wszystkie przypisane przesyłki i przenoszenie muszą zostać zakończone przed tym terminem.
Właściwości dostawy
Niektóre często używane właściwości komunikatu Shipment
(REST, gRPC)
uwzględnij:
pickups[]
ideliveries[]
wskazują, gdzie można odebrać przesyłkę lub przestali żyć. Usługipickups[]
ideliveries[]
używają parametru KomunikatVisitRequest
(REST, gRPC).loadDemands
to obciążenie, które pojazd musi wykonać, przesyłki. Samochody odpowiednieload_limits
(REST, gRPC) określa, jaki ładunek może obsłużyć pojazd w danym momencie. Więcej informacji o obciążeniu znajdziesz w artykule Wymagania i limity obciążenia.penalty_cost
to koszt naliczany w przypadku pominięcia dostawy. Odczytano znajdziesz więcej informacji o kosztach w parametrach modelu kosztu.
Właściwości pojazdu
Niektóre często używane właściwości komunikatu Vehicle
(REST, gRPC)
uwzględnij:
startLocation
wskazuje miejsce, do którego pojazd musi rozpocząć trasę. Ten jest opcjonalna. Jeśli go nie podasz, trasa pojazdu zacznie się w lokalizacji pierwszej przypisanej przesyłki.endLocation
wskazuje miejsce, do którego pojazd musi zakończyć trasę. Ta usługa jest opcjonalna. Jeśli nie podasz tych danych, trasa pojazdu zakończy się w lokalizacji: ostatnią przypisaną przesyłkę.startTimeWindows[]
wskazuje, kiedy pojazd może rozpocząć trasę. Ten jest opcjonalna.endTimeWindows[]
wskazuje, kiedy pojazd może rozpocząć i zakończyć trasę. Obie właściwości są opcjonalne.loadLimits
reprezentuje pojemność pojazdu dostępną na realizację dostaw pod kątem zapotrzebowania na obciążenie. Więcej informacji o wymaganiach i limitach obciążenia znajdziesz w artykułach Żądania obciążenia i Limity.
Pełne przykładowe żądanie w formacie JSON wygląda tak:
{
"model": {
"shipments": [
{
"pickups": [
{
"arrivalLocation": {
"latitude": 37.73881799999999,
"longitude": -122.4161
}
}
],
"deliveries": [
{
"arrivalLocation": {
"latitude": 37.79581,
"longitude": -122.4218856
}
}
]
}
],
"vehicles": [
{
"startLocation": {
"latitude": 37.73881799999999,
"longitude": -122.4161
},
"endLocation": {
"latitude": 37.73881799999999,
"longitude": -122.4161
},
"costPerKilometer": 1.0
}
],
"globalStartTime": "2024-02-13T00:00:00.000Z",
"globalEndTime": "2024-02-14T06:00:00.000Z"
}
}
Zarówno OptimizeTours
, jak i BatchOptimizeTours
wykorzystują komunikaty o żądaniach, takie jak
powyżej, ale na różne sposoby. Przed utworzeniem optymalizacji trasy
ważne jest, aby znać różnice między tymi metodami: