Jak opisano pokrótce w sekcji Omówienie optymalizacji trasy, podstawowe żądanie składa się z elementów wymaganych przez Model, Przesyłki i Pojazdy:
- Model przechwytuje ustawienia i ograniczenia dla całego żądania, włącznie z
Shipments
iVehicles
. - Przesyłki reprezentują zadania lub rzeczywiste przesyłki, w tym opcje odbioru i dostawy
VisitRequest
. Przesyłki mają lokalne ustawienia i ograniczenia. - Pojazdy to pojazdy, kierowcy lub personel. Pojazdy mają też lokalne ustawienia i ograniczenia.
Właściwości każdego elementu opisują część problemu optymalizacji na określonym poziomie szczegółowości. Ograniczenia dotyczące całego modelu mają zastosowanie do wszystkich statków i pojazdów, a ograniczenia i właściwości określone na podstawie dostaw lub pojazdów – odnoszą się tylko do jednej przesyłki lub pojazdu.
Pełną dokumentację poszczególnych typów wiadomości znajdziesz w dokumentacji referencyjnej dotyczącej komunikatów ShipmentModel
(REST, gRPC), Shipment
(REST, gRPC) oraz Vehicle
(REST, gRPC).
OptimizeToursRequest
miejsca zakwaterowania
Do często używanych właściwości komunikatu OptimizeToursRequest
najwyższego poziomu (REST, gRPC) należą:
searchMode
wskazuje, czy zwrócić pierwsze rozwiązanie, które spełnia określone ograniczenia, czy znaleźć najlepsze możliwe rozwiązanie w wyznaczonym terminie.considerRoadTraffic
określa, czy aktualny ruch jest używany do wyznaczania tras i szacowania szacowanego czasu dotarcia na miejsce.populateTransitionPolylines
określa, czy w odpowiedzi są zwracane linie łamane trasy.
Właściwości modelu
Do często używanych właściwości komunikatu ShipmentModel
(REST, gRPC) należą:
globalStartTime
to najwcześniejszy czas rozpoczęcia trasy dla wszystkich pojazdów i ładunków. Żaden pojazd nie może rozpocząć pierwszego przenoszenia ani wysyłek przed tym terminem.globalEndTime
przedstawia najnowszy czas zakończenia tras dla wszystkich pojazdów i ładunków. Wszystkie przypisane przesyłki i przeniesienia muszą zostać ukończone przed tym terminem.
Właściwości dostawy
Do często używanych właściwości komunikatu Shipment
(REST, gRPC) należą:
pickups[]
ideliveries[]
wskazują, gdzie można odebrać lub dostarczyć przesyłkę. Usługipickups[]
ideliveries[]
używają komunikatuVisitRequest
(REST, gRPC).loadDemands
określa obciążenie wymagane do dostarczenia przesyłki przez pojazd. Odpowiednia właściwośćload_limits
(REST, gRPC) pojazdu wskazuje, jaki obciążenie 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. Więcej informacji o kosztach znajdziesz w artykule Parametry modelu kosztu.
Właściwości pojazdu
Do często używanych właściwości komunikatu Vehicle
(REST, gRPC) należą:
startLocation
wskazuje miejsce, do którego pojazd musi rozpocząć trasę. Ta właściwość jest opcjonalna. Jeśli nie podasz tej nazwy, trasa pojazdu zacznie się w miejscu, w którym została przypisana pierwsza przesyłka.endLocation
wskazuje miejsce, do którego pojazd musi zakończyć trasę. Ta właściwość jest opcjonalna. Jeśli nie podasz żadnej wartości, trasa pojazdu zakończy się w miejscu ostatniej przypisanej przesyłki.startTimeWindows[]
wskazuje, kiedy pojazd może rozpocząć trasę. Ta właściwość 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 potrzeby zaspokojenia obciążenia dostaw. Więcej informacji o wymaganiach i limitach obciążenia znajdziesz w artykule Wymagania i limity obciążenia.
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
korzystają z wiadomości z żądaniami jak w przykładzie powyżej, ale na różne sposoby. Przed wysłaniem żądania optymalizacji trasy ważne jest, by poznać różnice między tymi metodami: