Utwórz wiadomość z żądaniem

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 i Vehicles.
  • 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[] i deliveries[] wskazują, gdzie można odebrać przesyłkę lub przestali żyć. Usługi pickups[] i deliveries[] używają parametru Komunikat VisitRequest (REST, gRPC).
  • loadDemands to obciążenie, które pojazd musi wykonać, przesyłki. Samochody odpowiednie load_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:

Porównanie OptimizeTours i BatchOptimizeTours