Utwórz wiadomość z żądaniem

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 i Vehicles.
  • 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[] i deliveries[] wskazują, gdzie można odebrać lub nadać przesyłkę. Właściwości pickups[] i deliveries[] używają wiadomości VisitRequest (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"
  }
}

OptimizeToursBatchOptimizeTours 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:

Porównanie poleceń OptimizeTours i BatchOptimizeTours