Sendet eine OptimizeToursRequest
mit einem ShipmentModel
und gibt ein OptimizeToursResponse
mit ShipmentRoute
s zurück. Dabei handelt es sich um eine Reihe von Routen, die von Fahrzeugen ausgeführt werden sollen, um die Gesamtkosten zu minimieren.
Ein ShipmentModel
-Modell besteht hauptsächlich aus Shipment
s, die ausgeführt werden müssen, und Vehicle
s, die zum Transport der Shipment
s verwendet werden können. Die ShipmentRoute
s weisen Vehicle
s Shipment
s zu. Genauer gesagt, wird jedem Fahrzeug eine Reihe von Visit
s zugewiesen, wobei eine Visit
einer VisitRequest
entspricht, bei der es sich um eine Abholung oder Lieferung für ein Shipment
handelt.
Ziel ist es, eine Zuweisung von ShipmentRoute
zu Vehicle
s zu ermöglichen, sodass die Gesamtkosten minimiert werden, wenn die Kosten in ShipmentModel
viele Komponenten enthalten.
HTTP-Anfrage
POST https://routeoptimization.googleapis.com/v1/{parent=projects/*/locations/*}:optimizeTours
Die URL verwendet die Syntax der gRPC-Transcodierung.
Pfadparameter
Parameter | |
---|---|
parent |
Erforderlich. Zielprojekt oder -standort für den Anruf. Format: * Wenn kein Standort angegeben ist, wird automatisch eine Region ausgewählt. |
Anfragetext
Der Anfragetext enthält Daten mit folgender Struktur:
JSON-Darstellung |
---|
{ "timeout": string, "model": { object ( |
Felder | |
---|---|
timeout |
Wenn dieses Zeitlimit festgelegt wird, gibt der Server eine Antwort zurück, bevor das Zeitlimit oder das Zeitlimit für synchrone Anfragen des Servers erreicht ist, je nachdem, was früher eintritt. Bei asynchronen Anfragen generiert der Server nach Möglichkeit eine Lösung, bevor das Zeitlimit überschritten wird. Eine Dauer in Sekunden mit bis zu neun Nachkommastellen, die auf „ |
model |
Zu lösendes Versandmodell. |
solvingMode |
Standardmäßig ist der Lösungsmodus auf |
searchMode |
Suchmodus, der zum Lösen der Anfrage verwendet wurde. |
injectedFirstSolutionRoutes[] |
Den Optimierungsalgorithmus dabei unterstützen, eine erste Lösung zu finden, die einer früheren Lösung ähnelt. Das Modell ist eingeschränkt, wenn die erste Lösung erstellt wird. Alle Lieferungen, die nicht auf einer Route ausgeführt werden, werden in der ersten Lösung implizit übersprungen, können jedoch in aufeinanderfolgenden Lösungen ausgeführt werden. Die Lösung muss einige grundlegende Gültigkeitsannahmen erfüllen:
Wenn die injizierte Lösung nicht machbar ist, wird nicht unbedingt ein Validierungsfehler zurückgegeben. Stattdessen wird möglicherweise ein Fehler zurückgegeben, der auf eine Nichtdurchführbarkeit hinweist. |
injectedSolutionConstraint |
Den Optimierungsalgorithmus einschränken, um eine endgültige Lösung zu finden, die einer früheren Lösung ähnelt. Sie können damit beispielsweise Teile von Routen fixieren, die bereits abgeschlossen wurden oder die noch fertiggestellt werden sollen, aber nicht geändert werden dürfen. Wenn die injizierte Lösung nicht machbar ist, wird nicht unbedingt ein Validierungsfehler zurückgegeben. Stattdessen wird möglicherweise ein Fehler zurückgegeben, der auf eine Nichtdurchführbarkeit hinweist. |
refreshDetailsRoutes[] |
Wenn das Feld nicht leer ist, werden die angegebenen Routen aktualisiert, ohne die zugrunde liegende Abfolge von Besuchen oder Fahrtzeiten zu ändern. Es werden nur andere Details aktualisiert. Damit wird das Modell nicht gelöst. Seit 2020/11 wird damit nur die Polylinien nicht leerer Routen ausgefüllt und Die Dieses Feld darf nicht zusammen mit
|
interpretInjectedSolutionsUsingLabels |
Falls wahr:
Diese Interpretation gilt für die Felder Bei „true“ dürfen Labels in den folgenden Kategorien höchstens einmal in einer Kategorie vorkommen:
Wenn ein Das Entfernen von Routenbesuchen oder ganzen Routen aus einer injizierten Lösung kann sich auf die implizierten Einschränkungen auswirken, was zu Änderungen der Lösung, Validierungsfehlern oder der Undurchführbarkeit führen kann. HINWEIS: Der Aufrufer muss darauf achten, dass jede |
considerRoadTraffic |
Berücksichtigen Sie die Traffic-Schätzung bei der Berechnung der |
populatePolylines |
Wenn „true“ festgelegt ist, werden Polylinien in Antwort- |
populateTransitionPolylines |
Wenn „true“ festgelegt ist, werden Polylinien in der Antwort |
allowLargeDeadlineDespiteInterruptionRisk |
Wenn diese Richtlinie festgelegt ist, kann für die Anfrage eine Frist von bis zu 60 Minuten festgelegt werden (siehe https://grpc.io/blog/deadlines). Andernfalls beträgt die maximale Frist nur 30 Minuten. Beachten Sie, dass langlebige Anfragen ein deutlich größeres, aber dennoch geringes Unterbrechungsrisiko haben. |
useGeodesicDistances |
Ist dies der Fall, werden Entfernungen anhand geodätischer Entfernungen statt anhand von Google Maps-Entfernungen berechnet. Die Reisezeiten werden anhand geodätischer Entfernungen mit einer durch |
label |
Label, das zur Identifizierung dieser Anfrage verwendet werden kann und im |
geodesicMetersPerSecond |
Wenn |
maxValidationErrors |
Kürzt die Anzahl der zurückgegebenen Validierungsfehler. Diese Fehler werden in der Regel an die Fehlernutzlast INVALID_ ARGUMENT als Fehlerdetail BadRequest angehängt (https://cloud.google.com/apis/design/errors#error_details), es sei denn, solveMode=VALIDATE_ONLY: siehe Feld |
Antworttext
Wenn der Vorgang erfolgreich abgeschlossen wurde, enthält der Antworttext eine Instanz von OptimizeToursResponse
.
Autorisierungsbereiche
Erfordert den folgenden OAuth-Bereich:
https://www.googleapis.com/auth/cloud-platform