Tworzenie wiadomości z prośbą

Deweloperzy z Europejskiego Obszaru Gospodarczego (EOG)

Jak krótko opisano w omówieniu optymalizacji trasy, podstawowe żądanie składa się z modelu, przesyłekpojazdów jako wymaganych elementów:

  • Model zawiera ustawienia i ograniczenia dotyczące całego żądania, w tym ShipmentsVehicles.
  • 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[] i deliveries[] oznaczają miejsca, w których można odebrać lub nadać przesyłkę. Właściwości pickups[] i deliveries[] korzystają z komunikatu VisitRequest (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"
  }
}

OptimizeToursBatchOptimizeTours 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