Anfragenachricht erstellen

Wie im Abschnitt Routenoptimierung – Übersicht kurz beschrieben, besteht eine grundlegende Anfrage aus den erforderlichen Entitäten Modell, Sendungen und Fahrzeuge:

  • Model enthält Einstellungen und Einschränkungen für die gesamte Anfrage, einschließlich Shipments und Vehicles.
  • Sendungen stellen Aufgaben oder tatsächliche Sendungen dar, die Abhol- und LieferVisitRequests umfassen. Sendungen haben lokale Einstellungen und Einschränkungen.
  • Fahrzeuge stehen für Fahrzeuge, Fahrer oder Personal. Für Fahrzeuge gelten außerdem lokale Einstellungen und Einschränkungen.

Die Eigenschaften der einzelnen Entitäten beschreiben einen Teil eines Optimierungsproblems auf einer bestimmten Detailebene. Modellweite Einschränkungen werden auf alle Sendungen und Fahrzeuge angewendet, während Einschränkungen und Eigenschaften, die für Sendungen oder Fahrzeuge angegeben sind, für eine einzelne Sendung oder ein einzelnes Fahrzeug gelten.

Eine vollständige Dokumentation zu den einzelnen Nachrichtentypen finden Sie in der Referenzdokumentation für ShipmentModel- (REST, gRPC), Shipment- (REST, gRPC) und Vehicle-Nachrichten (REST, gRPC).

OptimizeToursRequest Unterkünfte

Zu den häufig verwendeten Eigenschaften der OptimizeToursRequest-Nachricht der obersten Ebene (REST, gRPC) gehören:

  • searchMode gibt an, ob die erste Lösung zurückgegeben werden soll, die die angegebenen Einschränkungen erfüllt, oder ob die bestmögliche Lösung innerhalb eines festgelegten Termins gefunden werden soll.
  • Mit considerRoadTraffic wird festgelegt, ob Live-Verkehrsinformationen für die Routenführung und die geschätzte Ankunftszeit verwendet werden.
  • Mit populateTransitionPolylines wird festgelegt, ob Routenpolylinien und Routentokens in der Antwort zurückgegeben werden.

Modellattribute

Zu den häufig verwendeten Eigenschaften der ShipmentModel-Nachricht (REST, gRPC) gehören:

  • globalStartTime steht für die früheste Startzeit von Routen für alle Fahrzeuge und Sendungen. Vor diesem Datum dürfen keine Fahrzeuge ihre ersten Übergänge und Sendungen starten.
  • globalEndTime ist die späteste Endzeit der Routen aller Fahrzeuge und Sendungen. Alle zugewiesenen Sendungen und Übergänge müssen vor diesem Datum abgeschlossen sein.

Versandeigenschaften

Zu den häufig verwendeten Eigenschaften der Shipment-Nachricht (REST, gRPC) gehören:

  • pickups[] und deliveries[] geben an, wo eine Sendung abgeholt oder abgegeben werden kann. Für pickups[]- und deliveries[]-Properties wird die VisitRequest-Nachricht verwendet (REST, gRPC).
  • loadDemands gibt die Ladung an, die für ein Fahrzeug erforderlich ist, um eine Lieferung abzuschließen. Die entsprechende load_limits-Eigenschaft (REST, gRPC) von Fahrzeugen gibt an, wie viel Ladung ein Fahrzeug gleichzeitig aufnehmen kann. Weitere Informationen zur Auslastung finden Sie unter Anforderungen und Limits für die Auslastung.
  • penalty_cost entspricht den Kosten, die bei einem übersprungenen Versand anfallen. Weitere Informationen zu den Kosten finden Sie unter Parameter des Kostenmodells.

Fahrzeugeigenschaften

Zu den häufig verwendeten Eigenschaften der Vehicle-Nachricht (REST, gRPC) gehören:

  • startLocation gibt an, wo ein Fahrzeug seine Route beginnen muss. Dieses Attribut ist optional. Wenn keine Angabe erfolgt, beginnt die Route des Fahrzeugs am Standort der ersten zugewiesenen Sendung.
  • endLocation gibt an, wo ein Fahrzeug seine Route beenden muss. Dieses Attribut ist optional. Wenn nicht angegeben, endet die Route des Fahrzeugs am Standort der letzten zugewiesenen Sendung.
  • startTimeWindows[] gibt an, wann ein Fahrzeug seine Route starten kann. Dieses Attribut ist optional.
  • endTimeWindows[] gibt an, wann ein Fahrzeug seine Route beginnen und beenden kann. Beide Properties sind optional.
  • loadLimits steht für die Kapazität des Fahrzeugs, die zur Erfüllung der Ladeanforderung der Sendungen verfügbar ist. Weitere Informationen zu Lastanforderungen und ‑limits finden Sie unter Lastanforderungen und ‑limits.

Eine vollständige Beispielanfrage im JSON-Format sieht so aus:

{
  "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 und BatchOptimizeTours verarbeiten Anfragenachrichten wie im Beispiel oben, aber auf unterschiedliche Weise. Bevor Sie eine Anfrage zur Routenoptimierung senden, sollten Sie den Unterschied zwischen den beiden Methoden kennen:

OptimizeTours und BatchOptimizeTours vergleichen