Jak krótko opisano w omówieniu optymalizacji trasy, podstawowe żądanie składa się z modelu, przesyłek i pojazdów jako wymaganych elementów:
- Model zawiera ustawienia i ograniczenia dotyczące całego żądania, w tym
Shipments
iVehicles
. - Przesyłki to zadania lub rzeczywiste przesyłki, które obejmują odbiór i dostawę
VisitRequest
. Przesyłki mają lokalne ustawienia i ograniczenia. - Pojazdy reprezentują pojazdy, kierowców lub personel. Pojazdy mają też lokalne ustawienia i ograniczenia.
Właściwości każdej 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, natomiast ograniczenia i właściwości określone w przypadku przesyłek lub pojazdów dotyczą tylko jednej przesyłki lub jednego pojazdu.
Pełną dokumentację każdego typu wiadomości znajdziesz w dokumentacji referencyjnej dotyczącej wiadomości ShipmentModel
(REST, gRPC), Shipment
(REST, gRPC) i Vehicle
(REST, gRPC).
OptimizeToursRequest
miejsca zakwaterowania
Niektóre powszechnie używane właściwości wiadomości najwyższego poziomu OptimizeToursRequest
(REST, gRPC) to:
searchMode
określa, 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 mają być używane aktualne dane o natężeniu ruchu.populateTransitionPolylines
określa, czy w odpowiedzi mają być zwracane polilinie trasy i tokeny trasy.
Właściwości modelu
Niektóre z najczęściej używanych właściwości wiadomości ShipmentModel
(REST, gRPC) to:
globalStartTime
to najwcześniejsza godzina rozpoczęcia tras dla wszystkich pojazdów i przesyłek. Żaden pojazd nie może rozpocząć pierwszych przejazdów i dostaw przed tym czasem.globalEndTime
– najnowsza godzina zakończenia tras wszystkich pojazdów i przesyłek. Wszystkie przypisane przesyłki i przeniesienia muszą zostać ukończone przed tym czasem.
Właściwości przesyłki
Oto niektóre z najczęściej używanych właściwości komunikatu Shipment
(REST, gRPC):
pickups[]
ideliveries[]
oznaczają miejsca, w których można odebrać lub nadać przesyłkę. Właściwościpickups[]
ideliveries[]
korzystają z komunikatuVisitRequest
(REST, gRPC).loadDemands
reprezentują ładunek wymagany do zrealizowania przesyłki przez pojazd. Odpowiednia właściwośćload_limits
(REST, gRPC) pojazdów określa, ile ładunku może pomieścić pojazd w danym momencie. Więcej informacji o obciążeniu znajdziesz w artykule Wymagania i limity dotyczące obciążenia.penalty_cost
– koszt poniesiony w przypadku pominięcia przesyłki. Więcej informacji o kosztach znajdziesz w sekcji Parametry modelu kosztów.
Właściwości pojazdu
Oto niektóre z najczęściej używanych właściwości komunikatu Vehicle
(REST, gRPC):
startLocation
oznacza miejsce, w którym pojazd musi rozpocząć trasę. Ta właściwość jest opcjonalna. Jeśli nie podasz tego parametru, trasa pojazdu rozpocznie się w miejscu pierwszego przypisanego do niego transportu.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 lokalizacji ostatniej przypisanej przesyłki.startTimeWindows[]
oznacza, kiedy pojazd może rozpocząć trasę. Ta właściwość jest opcjonalna.endTimeWindows[]
oznacza, kiedy pojazd może rozpocząć i zakończyć trasę. Obie właściwości są opcjonalne.loadLimits
reprezentuje pojemność pojazdu dostępną do realizacji dostaw. Więcej informacji o zapotrzebowaniu na obciążenie i limitach znajdziesz w artykule Zapotrzebowanie na obciążenie 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"
}
}
OptimizeTours
i BatchOptimizeTours
przetwarzają wiadomości z żądaniami, takie jak w przykładzie powyżej, ale na różne sposoby. Zanim wyślesz prośbę o optymalizację trasy, musisz poznać różnicę między tymi 2 metodami:
Porównanie OptimizeTours i BatchOptimizeTours