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 to zadania lub rzeczywiste przesyłki obejmujące odbiór i dostawę
VisitRequest
. Przesyłki mają ustawienia i ograniczenia lokalne. - Pojazdy to pojazdy, kierowcy lub personel. Pojazdy mają też ustawienia lokalne i ograniczenia.
Właściwości każdej z tych encji opisują część problemu optymalizacji na określonym poziomie szczegółowości. Ograniczenia dotyczące całego modelu są stosowane do wszystkich przesyłek i pojazdów, a ograniczenia i właściwości określone w przesyłkach lub pojazdach dotyczą tylko jednej przesyłki lub jednego pojazdu.
Pełną dokumentację dotyczącą każdego typu wiadomości znajdziesz w dokumentacji referencyjnej ShipmentModel
(REST, gRPC), Shipment
(REST, gRPC) oraz Vehicle
(REST, gRPC).
OptimizeToursRequest
miejsca zakwaterowania
Oto niektóre często używane właściwości wiadomości OptimizeToursRequest
najwyższego poziomu (REST, gRPC):
searchMode
wskazuje, czy zwrócić pierwsze rozwiązanie, które spełnia określone ograniczenia, czy znaleźć najlepsze możliwe rozwiązanie w określonym terminie.considerRoadTraffic
określa, czy do wyznaczania trasy i szacowania czasu dotarcia na miejsce ma być używany ruch na żywo.populateTransitionPolylines
określa, czy w odpowiedzi są zwracane linie łamane trasy i tokeny tras.
Właściwości modelu
Oto niektóre często używane właściwości wiadomości ShipmentModel
(REST,
gRPC):
globalStartTime
to najwcześniejszy czas rozpoczęcia trasy dla wszystkich pojazdów i przesyłek. Żadne pojazdy nie mogą rozpocząć pierwszych przejazdów i przewozów przed tym terminem.globalEndTime
reprezentuje 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
Oto niektóre często używane właściwości wiadomości Shipment
(REST, gRPC):
- Wartości
pickups[]
ideliveries[]
wskazują, gdzie można odebrać lub nadać przesyłkę. Właściwościpickups[]
ideliveries[]
używają wiadomościVisitRequest
(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 Obciążenie i limity.penalty_cost
to koszt poniesiony, jeśli przesyłka została pominięta. Więcej informacji o kosztach znajdziesz w artykule Parametry modelu kosztowego.
Właściwości pojazdu
Oto niektóre często używane właściwości wiadomości Vehicle
(REST, gRPC):
startLocation
wskazuje miejsce, do którego pojazd musi rozpocząć trasę. Ta właściwość jest opcjonalna. Jeśli nie jest określona, trasa pojazdu rozpoczyna się w miejscu, w którym znajduje się pierwsza przypisana przesyłka.endLocation
oznacza miejsce, w którym pojazd musi zakończyć trasę. Ta właściwość jest opcjonalna. Jeśli nie zostanie określony, trasa pojazdu kończy się w miejscu ostatniej przypisanej przesyłki.startTimeWindows[]
oznacza, 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
to ładowność pojazdu, która jest dostępna do zaspokojenia zapotrzebowania na ładunek. Więcej informacji o wymaganiach i limitach obciążenia znajdziesz w artykule Wymagania i limity obciążenia.
Pełny przykład żądania 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"
}
}
OptimizeTours
i BatchOptimizeTours
używają wiadomości z żądaniem w sposób podobny do pokazanego powyżej, ale w różny sposób. Zanim prześlesz żądanie optymalizacji trasy, musisz wiedzieć, na czym polega różnica między tymi 2 metodami: