Index
RouteOptimization
(Benutzeroberfläche)AggregatedMetrics
(Meldung)BatchOptimizeToursMetadata
(Meldung)BatchOptimizeToursRequest
(Meldung)BatchOptimizeToursRequest.AsyncModelConfig
(Meldung)BatchOptimizeToursResponse
(Meldung)BreakRule
(Meldung)BreakRule.BreakRequest
(Meldung)BreakRule.FrequencyConstraint
(Meldung)DataFormat
(Aufzählung)DistanceLimit
(Meldung)GcsDestination
(Meldung)GcsSource
(Meldung)InjectedSolutionConstraint
(Meldung)InjectedSolutionConstraint.ConstraintRelaxation
(Meldung)InjectedSolutionConstraint.ConstraintRelaxation.Relaxation
(Meldung)InjectedSolutionConstraint.ConstraintRelaxation.Relaxation.Level
(Aufzählung)InputConfig
(Meldung)Location
(Meldung)OptimizeToursRequest
(Meldung)OptimizeToursRequest.SearchMode
(Option)OptimizeToursRequest.SolvingMode
(Option)OptimizeToursResponse
(Meldung)OptimizeToursResponse.Metrics
(Meldung)OptimizeToursValidationError
(Meldung)OptimizeToursValidationError.FieldReference
(Meldung)OutputConfig
(Meldung)RouteModifiers
(Meldung)Shipment
(Meldung)Shipment.Load
(Meldung)Shipment.VisitRequest
(Meldung)ShipmentModel
(Meldung)ShipmentModel.DurationDistanceMatrix
(Meldung)ShipmentModel.DurationDistanceMatrix.Row
(Meldung)ShipmentModel.PrecedenceRule
(Meldung)ShipmentRoute
(Meldung)ShipmentRoute.Break
(Meldung)ShipmentRoute.EncodedPolyline
(Meldung)ShipmentRoute.Transition
(Meldung)ShipmentRoute.VehicleLoad
(Meldung)ShipmentRoute.Visit
(Meldung)ShipmentTypeIncompatibility
(Meldung)ShipmentTypeIncompatibility.IncompatibilityMode
(Aufzählung)ShipmentTypeRequirement
(Meldung)ShipmentTypeRequirement.RequirementMode
(Aufzählung)SkippedShipment
(Meldung)SkippedShipment.Reason
(Meldung)SkippedShipment.Reason.Code
(Aufzählung)TimeWindow
(Meldung)TransitionAttributes
(Meldung)Vehicle
(Meldung)Vehicle.DurationLimit
(Meldung)Vehicle.LoadLimit
(Meldung)Vehicle.LoadLimit.Interval
(Meldung)Vehicle.TravelMode
(Option)Vehicle.UnloadingPolicy
(Option)Waypoint
(Meldung)
RouteOptimization
Ein Dienst zur Optimierung von Fahrzeugtouren.
Gültigkeit bestimmter Feldtypen:
google.protobuf.Timestamp
- Die Zeiten sind in Unix-Zeit angegeben: Sekunden seit dem 01.01.1970, 00:00:00 Uhr (UTC).
- „seconds“ muss zwischen 0 und 253402300799 liegen, also zwischen [1970-01-01T00:00:00+00:00, 9999-12-31T23:59:59+00:00].
- „nanos“ muss nicht festgelegt oder auf „0“ gesetzt sein.
google.protobuf.Duration
- „seconds“ muss zwischen 0 und 253402300799 liegen, also zwischen 1970-01-01T00:00:00+00:00 und 9999-12-31T23:59:59+00:00.
- „nanos“ muss nicht festgelegt oder auf „0“ gesetzt sein.
google.type.LatLng
- latitude muss im Bereich [-90.0, 90.0] liegen.
- longitude muss im Bereich [-180.0, 180.0] liegen.
- Mindestens einer von „latitude“ und „longitude“ muss einen Wert ungleich Null haben.
BatchOptimizeTours |
---|
Optimiert Fahrzeugrundfahrten für eine oder mehrere Diese Methode ist ein Vorgang mit langer Ausführungszeit. Die Eingaben für die Optimierung ( Der Nutzer kann Wenn das LRO-Feld Wenn das Feld
|
OptimizeTours |
---|
Es wird eine Ein Ziel ist es,
|
AggregatedMetrics
Zusammengefasste Messwerte für ShipmentRoute
(bzw. für OptimizeToursResponse
über alle Transition
und/oder Visit
(bzw. über alle ShipmentRoute
) Elemente).
Felder | |
---|---|
performed_ |
Anzahl der durchgeführten Sendungen. Ein Abhol- und Lieferpaar wird nur einmal gezählt. |
travel_ |
Die Gesamtfahrzeit für eine Route oder eine Lösung. |
wait_ |
Die Gesamtwartezeit für eine Route oder eine Lösung. |
delay_ |
Die Gesamtdauer der Verzögerung für eine Route oder eine Lösung. |
break_ |
Gesamtdauer der Pause für eine Route oder eine Lösung. |
visit_ |
Die gesamte Besuchsdauer für eine Route oder eine Lösung. |
total_ |
Die Gesamtdauer sollte der Summe aller oben genannten Zeiträume entsprechen. Für Routen entspricht dies auch:
|
travel_ |
Die Gesamtstrecke für eine Route oder eine Lösung. |
max_ |
Die maximale Last, die auf der gesamten Route (bzw. Lösung) für jede der Mengen auf dieser Route (bzw. Lösung) erreicht wird, berechnet als Maximum aller |
BatchOptimizeToursMetadata
Dieser Typ hat keine Felder.
Metadaten für Vorgänge bei BatchOptimizeToursRequest
-Aufrufen.
BatchOptimizeToursRequest
Batch-Optimierung von Touren als asynchronen Vorgang anfordern Jede Eingabedatei sollte eine OptimizeToursRequest
und jede Ausgabedatei eine OptimizeToursResponse
enthalten. Die Anfrage enthält Informationen zum Lesen/Schreiben und Parsen der Dateien. Alle Eingabe- und Ausgabedateien sollten sich im selben Projekt befinden.
Felder | |
---|---|
parent |
Erforderlich. Zielprojekt und Standort zum Anrufen festlegen. Format: * Wenn kein Standort angegeben ist, wird automatisch eine Region ausgewählt. |
model_ |
Erforderlich. Eingabe-/Ausgabeinformationen für jedes Kaufmodell, z. B. Dateipfade und Datenformate. |
AsyncModelConfig
Informationen zum asynchronen Lösen eines Optimierungsmodells.
Felder | |
---|---|
display_ |
Optional. Benutzerdefinierter Modellname, der von Nutzern als Alias verwendet werden kann, um Modelle im Blick zu behalten. |
input_ |
Erforderlich. Informationen zum Eingabemodell. |
output_ |
Erforderlich. Die gewünschten Informationen zum Ausgabeort. |
BatchOptimizeToursResponse
Dieser Typ hat keine Felder.
Antwort auf eine BatchOptimizeToursRequest
. Dieser Wert wird im Vorgang mit langer Ausführungszeit zurückgegeben, nachdem der Vorgang abgeschlossen ist.
BreakRule
Regeln zum Generieren von Pausen für ein Fahrzeug (z.B. Mittagspausen). Eine Pause ist ein zusammenhängender Zeitraum, in dem das Fahrzeug an seiner aktuellen Position inaktiv bleibt und keine Besuche durchführen kann. Unterbrechungen können in folgenden Fällen auftreten:
- während der Fahrt zwischen zwei Besuchen (einschließlich der Zeit direkt vor oder direkt nach einem Besuch, aber nicht in der Mitte eines Besuchs), in diesem Fall wird die entsprechende Fahrtzeit zwischen den Besuchen verlängert,
- oder vor dem Start des Fahrzeugs (das Fahrzeug wird möglicherweise nicht mitten in einer Pause gestartet), in diesem Fall hat es keinen Einfluss auf die Startzeit des Fahrzeugs.
- oder nach dem Ende des Fahrzeugs (ebenfalls mit der Endzeit des Fahrzeugs).
Felder | |
---|---|
break_ |
Abfolge von Pausen. Weitere Informationen finden Sie in der Nachricht |
frequency_ |
Es können mehrere |
BreakRequest
Die Abfolge der Pausen (d.h. ihre Anzahl und Reihenfolge), die für jedes Fahrzeug gelten, muss im Voraus bekannt sein. Die wiederholten BreakRequest
definieren diese Sequenz in der Reihenfolge, in der sie auftreten müssen. Die Zeitfenster (earliest_start_time
/ latest_start_time
) dürfen sich überschneiden, müssen aber mit der Bestellung kompatibel sein (dies wird geprüft).
Felder | |
---|---|
earliest_ |
Erforderlich. Untere Grenze (einschließlich) des Beginns der Pause. |
latest_ |
Erforderlich. Obergrenze (einschließlich) für den Beginn der Pause. |
min_ |
Erforderlich. Mindestdauer der Werbeunterbrechung. Muss positiv sein. |
FrequencyConstraint
Die Häufigkeit und Dauer der oben genannten Pausen kann weiter eingeschränkt werden, indem eine Mindestpausenfrequenz erzwungen wird, z. B. „Alle 12 Stunden muss eine Pause von mindestens einer Stunde eingelegt werden“. Angenommen, dies kann als „Innerhalb eines gleitenden Zeitfensters von 12 Stunden muss es mindestens eine Pause von mindestens einer Stunde geben“ interpretiert werden, würde dieses Beispiel in die folgende FrequencyConstraint
übersetzt:
{
min_break_duration { seconds: 3600 } # 1 hour.
max_inter_break_duration { seconds: 39600 } # 11 hours (12 - 1 = 11).
}
Bei der Zeit und Dauer der Werbeunterbrechungen in der Lösung werden alle diese Einschränkungen berücksichtigt, zusätzlich zu den Zeitfenstern und Mindestdauern, die bereits in der BreakRequest
angegeben sind.
Ein FrequencyConstraint
kann in der Praxis auch auf nicht aufeinanderfolgende Pausen angewendet werden. Im folgenden Zeitplan wird beispielsweise das Beispiel „1 Stunde alle 12 Stunden“ berücksichtigt:
04:00 vehicle start
.. performing travel and visits ..
09:00 1 hour break
10:00 end of the break
.. performing travel and visits ..
12:00 20-min lunch break
12:20 end of the break
.. performing travel and visits ..
21:00 1 hour break
22:00 end of the break
.. performing travel and visits ..
23:59 vehicle end
Felder | |
---|---|
min_ |
Erforderlich. Mindestdauer der Unterbrechung für diese Einschränkung. Nicht negativ. Siehe Beschreibung von |
max_ |
Erforderlich. Maximale zulässige Spanne eines Zeitintervalls auf der Route, das nicht mindestens teilweise eine Pause von |
DataFormat
Datenformate für Eingabe- und Ausgabedateien.
Enums | |
---|---|
DATA_FORMAT_UNSPECIFIED |
Ungültiger Wert. Das Format darf nicht „UNBESCHRIEBEN“ sein. |
JSON |
JavaScript Object Notation. |
PROTO_TEXT |
Textformat von Protocol Buffers. Weitere Informationen finden Sie unter https://protobuf.dev/reference/protobuf/textformat-spec/. |
DistanceLimit
Ein Limit, das die maximale zurückgelegte Strecke definiert. Sie kann hart oder weich sein.
Wenn ein weiches Limit definiert ist, müssen sowohl soft_max_meters
als auch cost_per_kilometer_above_soft_max
definiert sein und nicht negativ sein.
Felder | |
---|---|
max_ |
Eine feste Grenze, die die Entfernung auf maximal max_meters festlegt. Das Limit darf nicht negativ sein. |
soft_ |
Ein weiches Limit, das keine maximale Entfernung vorschreibt, aber bei einem Verstoß zu Kosten führt, die sich mit anderen im Modell definierten Kosten mit derselben Einheit addieren. Falls definiert, muss „soft_max_meters“ kleiner als „max_meters“ sein und darf nicht negativ sein. |
cost_ |
Angefallene Kosten pro Kilometer, bis zu
Diese Kosten werden in |
cost_ |
Kosten pro Kilometer, wenn die Entfernung das Limit von
Die Kosten dürfen nicht negativ sein. |
GcsDestination
Der Google Cloud Storage-Speicherort, an den die Ausgabedateien geschrieben werden.
Felder | |
---|---|
uri |
Erforderlich. Google Cloud Storage-URI. |
GcsSource
Der Google Cloud Storage-Speicherort, aus dem die Eingabedatei gelesen wird.
Felder | |
---|---|
uri |
Erforderlich. URI eines Google Cloud Storage-Objekts im Format |
InjectedSolutionConstraint
In die Anfrage eingebrachte Lösung mit Informationen dazu, welche Besuche eingeschränkt werden müssen und wie.
Felder | |
---|---|
routes[] |
Routen der einzuschleusenden Lösung. Einige Routen wurden möglicherweise aus der ursprünglichen Lösung entfernt. Die Routen und übersprungenen Sendungen müssen die für |
skipped_ |
Übersprungene Lieferungen der einzuschleusenden Lösung. Einige davon wurden möglicherweise aus der ursprünglichen Lösung entfernt. Siehe Feld |
constraint_ |
Gibt für null oder mehr Fahrzeuggruppen an, wann und in welchem Umfang Einschränkungen gelockert werden sollen. Wenn dieses Feld leer ist, sind alle nicht leeren Fahrzeugrouten vollständig eingeschränkt. |
ConstraintRelaxation
Gibt für eine Gruppe von Fahrzeugen an, ab welchem Grenzwert die Einschränkungen für Besuche gelockert werden und auf welche Stufe. Sendungen, die im Feld skipped_shipment
aufgeführt sind, müssen übersprungen werden, d.h., sie können nicht ausgeführt werden.
Felder | |
---|---|
relaxations[] |
Alle Lockerungen der Besuchseinschränkungen, die für Besuche auf Routen mit Fahrzeugen in |
vehicle_ |
Gibt die Fahrzeugindizes an, auf die die Besuchseinschränkung Ein Fahrzeugindex wird wie |
Entspannung
Wenn relaxations
leer ist, sind der Beginn und die Reihenfolge aller Besuche auf routes
vollständig eingeschränkt und es können keine neuen Besuche eingefügt oder diesen Routen hinzugefügt werden. Außerdem sind der Beginn und das Ende eines Fahrzeugs in routes
vollständig eingeschränkt, es sei denn, das Fahrzeug ist leer, d.h., es hat keine Besuche und used_if_route_is_empty
ist im Modell auf „falsch“ gesetzt.
relaxations(i).level
gibt die Lockerungsstufe der Einschränkung an, die auf einen Besuch #j angewendet wird, der folgende Bedingungen erfüllt:
route.visits(j).start_time >= relaxations(i).threshold_time
UNDj + 1 >= relaxations(i).threshold_visit_count
Ebenso wird der Fahrzeugstart auf relaxations(i).level
gelockert, wenn folgende Bedingungen erfüllt sind:
vehicle_start_time >= relaxations(i).threshold_time
UNDrelaxations(i).threshold_visit_count == 0
und das Fahrzeugende wird aufrelaxations(i).level
gelockert, wenn folgende Bedingungen erfüllt sind:vehicle_end_time >= relaxations(i).threshold_time
UNDroute.visits_size() + 1 >= relaxations(i).threshold_visit_count
Wenn ein Besuch die threshold_visit_count
ODER die threshold_time
erfüllt, fügen Sie zwei relaxations
mit derselben level
hinzu: eine mit nur threshold_visit_count
und eine mit nur threshold_time
. Wenn ein Besuch die Bedingungen mehrerer relaxations
erfüllt, gilt die am wenigsten strikte Stufe. Das bedeutet, dass der Entspannungsgrad vom Start des Fahrzeugs über die Routenbesuche bis zum Ende des Fahrzeugs immer weiter sinkt.
Zeitpunkt und Reihenfolge von Routenbesuchen, die die Grenzbedingungen für eine relaxations
nicht erfüllen, sind vollständig eingeschränkt und es können keine Besuche in diese Sequenzen eingefügt werden. Wenn ein Fahrzeugstart oder -ende nicht die Bedingungen für eine Lockerung erfüllt, ist die Zeit festgelegt, es sei denn, das Fahrzeug ist leer.
Felder | |
---|---|
level |
Der Grad der Lockerung der Einschränkung, der gilt, wenn die Bedingungen bei oder nach |
threshold_ |
Der Zeitpunkt, zu dem oder nach dem die Entspannung |
threshold_ |
Die Anzahl der Besuche, ab der die Lockerung Wenn es |
Level
Gibt die verschiedenen Einschränkungen an, die für einen Besuch angewendet werden, und die, die folgen, wenn die Grenzbedingungen erfüllt sind.
Die folgende Aufzählung ist in absteigender Reihenfolge der Entspannung geordnet.
Enums | |
---|---|
LEVEL_UNSPECIFIED |
Implizites Standard-Lockerungsniveau: Es werden keine Einschränkungen gelockert, d.h., alle Besuche sind vollständig eingeschränkt. Dieser Wert darf in |
RELAX_VISIT_TIMES_AFTER_THRESHOLD |
Die Start- und Endzeiten von Besuchen und Fahrzeugen werden gelockert, aber jeder Besuch bleibt demselben Fahrzeug zugeordnet und die Besuchsreihenfolge muss eingehalten werden: Zwischen oder vor den Besuchen darf kein Besuch eingefügt werden. |
RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD |
Entspricht RELAX_VISIT_TIMES_AFTER_THRESHOLD , aber die Besuchsabfolge ist auch lockerer: Besuche können nur von diesem Fahrzeug durchgeführt werden, aber potenziell nicht ausgeführt werden. |
RELAX_ALL_AFTER_THRESHOLD |
Entspricht RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD , aber das Fahrzeug ist auch entspannt: Besuche sind ab oder nach dem Grenzwert völlig kostenlos und können möglicherweise nicht ausgeführt werden. |
InputConfig
Geben Sie einen Eingabewert für [BatchOptimizeTours][google.maps.routeoptimization.v1.RouteOptimizationService.BatchOptimizeTours] an.
Felder | |
---|---|
data_ |
Erforderlich. Das Format der Eingabedaten. |
Union-Feld source . Erforderlich. Für source ist nur einer der folgenden Werte zulässig: |
|
gcs_ |
Einen Google Cloud Storage-Speicherort Es muss sich um ein einzelnes Objekt (eine einzelne Datei) handeln. |
Standort
Umfasst einen Standort (einen geografischen Punkt und eine optionale Überschrift).
Felder | |
---|---|
lat_ |
Die geografischen Koordinaten des Wegpunkts. |
heading |
Die Kompassrichtung, die der Verkehrsflussrichtung entspricht. Mit diesem Wert wird die Straßenseite angegeben, die für die Abholung und Rückgabe verwendet werden soll. Die Werte für die Richtung können zwischen 0 und 360 liegen. 0 gibt dabei die Richtung „Nördlich“ an, 90 die Richtung „Östlich“ usw. |
OptimizeToursRequest
Anfrage, die an einen Tourenoptimierungssolver gesendet wird, der das zu lösende Versandmodell sowie die Optimierungsparameter definiert.
Felder | |
---|---|
parent |
Erforderlich. Zielprojekt oder -standort für einen Anruf festlegen. Format: * Wenn kein Standort angegeben ist, wird automatisch eine Region ausgewählt. |
timeout |
Wenn dieses Zeitlimit festgelegt ist, gibt der Server eine Antwort zurück, bevor das Zeitlimit abgelaufen ist oder die Serverfrist für synchrone Anfragen erreicht wird, je nachdem, was früher eintritt. Bei asynchronen Anfragen generiert der Server (falls möglich) eine Lösung, bevor das Zeitlimit abgelaufen ist. |
model |
Zu lösendes Versandmodell. |
solving_ |
Standardmäßig ist der Lösungsmodus |
search_ |
Der Suchmodus, der zur Lösung der Anfrage verwendet wurde. |
injected_ |
Den Optimierungsalgorithmus bei der Suche nach einer ersten Lösung unterstützen, die einer früheren Lösung ähnelt. Das Modell wird eingeschränkt, wenn die erste Lösung erstellt wird. Alle Sendungen, die nicht auf einer Route ausgeführt werden, werden in der ersten Lösung implizit übersprungen, können aber in nachfolgenden Lösungen ausgeführt werden. Die Lösung muss einige grundlegende Gültigkeitsannahmen erfüllen:
Wenn die eingebrachte Lösung nicht realisierbar ist, wird nicht unbedingt ein Validierungsfehler zurückgegeben. Stattdessen kann ein Fehler zurückgegeben werden, der auf die Unmöglichkeit hinweist. |
injected_ |
Der Optimierungsalgorithmus wird so eingeschränkt, dass eine endgültige Lösung gefunden wird, die einer früheren Lösung ähnelt. So können Sie beispielsweise Teile von Routen sperren, die bereits abgeschlossen sind oder noch abgeschlossen werden sollen, aber nicht geändert werden dürfen. Wenn die eingebrachte Lösung nicht realisierbar ist, wird nicht unbedingt ein Validierungsfehler zurückgegeben. Stattdessen kann ein Fehler zurückgegeben werden, der auf die Unmöglichkeit hinweist. |
refresh_ |
Wenn die Liste nicht leer ist, werden die angegebenen Routen aktualisiert, ohne dass die zugrunde liegende Abfolge der Besuche oder Fahrtzeiten geändert wird. Nur andere Details werden aktualisiert. Das Modell wird dadurch nicht gelöst. Seit November 2020 werden damit nur die Polylinien nicht leerer Routen ausgefüllt. Außerdem muss Die Dieses Feld darf nicht mit
|
interpret_ |
Wenn wahr:
Diese Interpretation gilt für die Felder Wenn diese Option aktiviert ist, dürfen Labels in den folgenden Kategorien höchstens einmal in ihrer Kategorie vorkommen:
Wenn ein Wenn Sie Routenbesuche oder ganze Routen aus einer eingespritzten Lösung entfernen, kann sich das auf die impliziten Einschränkungen auswirken. Dies kann zu Änderungen an der Lösung, Validierungsfehlern oder Undurchführbarkeit führen. HINWEIS: Der Aufrufer muss dafür sorgen, dass jede |
consider_ |
Berücksichtigen Sie die Besucherzahlschätzung bei der Berechnung der |
populate_ |
Wenn „true“ festgelegt ist, werden Polylinien in Antwort- |
populate_ |
Wenn „wahr“ festgelegt ist, werden Polylinien und Routen-Tokens in Antwort |
allow_ |
Wenn diese Option festgelegt ist, kann die Anfrage ein Zeitlimit von bis zu 60 Minuten haben (siehe https://grpc.io/blog/deadlines). Andernfalls beträgt die maximale Frist nur 30 Minuten. Beachten Sie, dass bei langlebigen Anfragen das Risiko einer Unterbrechung deutlich höher (aber immer noch gering) ist. |
use_ |
Wenn „wahr“ festgelegt ist, werden Reisedistanzen anhand von geodätischen Entfernungen anstelle von Google Maps-Entfernungen berechnet. Reisezeiten werden anhand von geodätischen Entfernungen mit einer Geschwindigkeit berechnet, die durch |
label |
Label, das verwendet werden kann, um diese Anfrage zu identifizieren, die in der |
geodesic_ |
Wenn |
max_ |
Die Anzahl der zurückgegebenen Validierungsfehler wird gekürzt. Diese Fehler werden in der Regel als BadRequest-Fehlerdetails (https://cloud.google.com/apis/design/errors#error_details) an eine INVALID_ARGUMENT-Fehlernutzlast angehängt, es sei denn, solving_mode=VALIDATE_ONLY (siehe Feld |
SearchMode
Modus, der das Verhalten der Suche definiert und einen Kompromiss zwischen Latenz und Lösungsqualität darstellt. In allen Modi wird die Frist für globale Anfragen erzwungen.
Enums | |
---|---|
SEARCH_MODE_UNSPECIFIED |
Nicht angegebener Suchmodus, entspricht RETURN_FAST . |
RETURN_FAST |
Beenden Sie die Suche, nachdem Sie die erste gute Lösung gefunden haben. |
CONSUME_ALL_AVAILABLE_TIME |
Nehmen Sie sich Zeit, um nach besseren Lösungen zu suchen. |
SolvingMode
Definiert, wie der Solver die Anfrage verarbeiten soll. In allen Modi außer VALIDATE_ONLY
erhalten Sie bei einer ungültigen Anfrage den Fehler INVALID_REQUEST
. Mit max_validation_errors
können Sie die Anzahl der zurückgegebenen Fehler begrenzen.
Enums | |
---|---|
DEFAULT_SOLVE |
Lösen Sie das Modell. Warnungen können unter [OptimizeToursResponse.validation_errors][google.cloud.optimization.v1.OptimizeToursResponse.validation_errors] ausgegeben werden. |
VALIDATE_ONLY |
Das Modell wird nur validiert, ohne es zu lösen. Es werden so viele OptimizeToursResponse.validation_errors wie möglich ausgefüllt. |
DETECT_SOME_INFEASIBLE_SHIPMENTS |
Es wird nur WICHTIG: Nicht alle nicht umsetzbaren Sendungen werden hier zurückgegeben, sondern nur die, die während der Vorverarbeitung als nicht umsetzbar erkannt werden. |
OptimizeToursResponse
Antwort nach der Lösung eines Problems bei der Tourenoptimierung mit den Routen, die von den einzelnen Fahrzeugen befahren wurden, den übersprungenen Sendungen und den Gesamtkosten der Lösung.
Felder | |
---|---|
routes[] |
Für jedes Fahrzeug berechnete Routen; die i-te Route entspricht dem i-ten Fahrzeug im Modell. |
request_ |
Kopie der |
skipped_ |
Liste aller übersprungenen Sendungen. |
validation_ |
Liste aller Validierungsfehler, die wir unabhängig voneinander erkennen konnten. Weitere Informationen finden Sie in der Erklärung zu |
metrics |
Messwerte zu Dauer, Entfernung und Nutzung für diese Lösung. |
Messwerte
Gesamtmesswerte, aggregiert über alle Routen.
Felder | |
---|---|
aggregated_ |
Aggregiert über die Routen. Jeder Messwert ist die Summe (oder bei Ladevorgängen der maximale Wert) aller |
skipped_ |
Anzahl der übersprungenen obligatorischen Sendungen. |
used_ |
Anzahl der verwendeten Fahrzeuge. Hinweis: Wenn eine Fahrzeugroute leer ist und |
earliest_ |
Der früheste Startzeitpunkt für ein Gebrauchtfahrzeug, berechnet als Minimum aller Gebrauchtfahrzeuge von |
latest_ |
Die späteste Endzeit für ein Gebrauchtfahrzeug, berechnet als Maximum aller Gebrauchtfahrzeuge von |
costs |
Kosten der Lösung, aufgeschlüsselt nach kostenbezogenen Anfragefeldern. Die Schlüssel sind Proto-Pfade, bezogen auf die Eingabe OptimizeToursRequest, z. B. „model.shipments.pickups.cost“. Die Werte sind die Gesamtkosten, die durch das entsprechende Kostenfeld generiert wurden, aggregiert über die gesamte Lösung. Mit anderen Worten: „costs["model.shipments.pickups.cost"]“ ist die Summe aller Abholkosten für die Lösung. Alle im Modell definierten Kosten werden hier ausführlich aufgeführt, mit Ausnahme der Kosten im Zusammenhang mit TransitionAttributes, die seit Januar 2022 nur noch zusammengefasst erfasst werden. |
total_ |
Gesamtkosten der Lösung. Die Summe aller Werte in der Kostenzuordnung. |
OptimizeToursValidationError
Beschreibt einen Fehler oder eine Warnung, die bei der Validierung einer OptimizeToursRequest
aufgetreten ist.
Felder | |
---|---|
code |
Ein Validierungsfehler wird durch das Paar ( Die Felder nach diesem Abschnitt liefern weitere Informationen zum Fehler. MULTIPLE ERRORS: Wenn mehrere Fehler vorliegen, werden beim Validierungsprozess mehrere davon ausgegeben. Ähnlich wie bei einem Compiler ist dies ein unvollkommener Prozess. Einige Validierungsfehler sind „fatal“, d. h., sie beenden den gesamten Validierungsprozess. Dies ist u. a. bei STABILITÄT: |
display_ |
Der Anzeigename des Fehlers. |
fields[] |
Ein Fehlerkontext kann 0, 1 (in den meisten Fällen) oder mehrere Felder umfassen. Für Fahrzeug 4 und die erste Abholung der Sendung 2 könnte das beispielsweise so aussehen:
Die Kardinalität von |
error_ |
Ein für Menschen lesbarer String, der den Fehler beschreibt. Es gibt eine 1:1-Zuordnung zwischen STABILITÄT: Nicht stabil: Die Fehlermeldung, die mit einer bestimmten |
offending_ |
Kann die Werte der Felder enthalten. Diese Option ist nicht immer verfügbar. Sie sollten sich nicht darauf verlassen und sie nur für die manuelle Fehlerbehebung von Modellen verwenden. |
FieldReference
Gibt einen Kontext für den Validierungsfehler an. Ein FieldReference
bezieht sich immer auf ein bestimmtes Feld in dieser Datei und folgt derselben hierarchischen Struktur. So können wir beispielsweise Element 2 von start_time_windows
von Fahrzeug 5 mit folgendem Code angeben:
name: "vehicles" index: 5 sub_field { name: "end_time_windows" index: 2 }
Entitäten der obersten Ebene wie OptimizeToursRequest
oder ShipmentModel
werden jedoch weggelassen, um die Nachricht nicht zu überladen.
Felder | |
---|---|
name |
Name des Felds, z.B. „vehicles“ |
sub_ |
Bei Bedarf rekursiv verschachteltes untergeordnetes Feld. |
Union-Feld Für |
|
index |
Index des Felds, falls es wiederholt wird. |
key |
Schlüssel, wenn das Feld eine Zuordnung ist. |
OutputConfig
Geben Sie ein Ziel für die Ergebnisse von [BatchOptimizeTours][google.maps.routeoptimization.v1.RouteOptimizationService.BatchOptimizeTours] an.
Felder | |
---|---|
data_ |
Erforderlich. Das Ausgabedatenformat. |
Union-Feld destination . Erforderlich. Für destination ist nur einer der folgenden Werte zulässig: |
|
gcs_ |
Der Google Cloud Storage-Speicherort, in den die Ausgabe geschrieben wird. |
RouteModifiers
Umfasst eine Reihe optionaler Bedingungen, die bei der Berechnung von Fahrzeugrouten erfüllt werden müssen. Dies entspricht RouteModifiers
in der Google Maps Platform Routes Preferred API. Weitere Informationen finden Sie unter https://developers.google.com/maps/documentation/routes/reference/rest/v2/RouteModifiers.
Felder | |
---|---|
avoid_ |
Gibt an, ob Mautstraßen nach Möglichkeit vermieden werden sollen. Es werden Routen bevorzugt, die keine Mautstraßen enthalten. Gilt nur für motorisierte Fortbewegungsmittel. |
avoid_ |
Gibt an, ob Autobahnen nach Möglichkeit vermieden werden sollen. Vorzug wird Routen gegeben, die keine Autobahnen enthalten. Gilt nur für motorisierte Fortbewegungsmittel. |
avoid_ |
Gibt an, ob Fähren nach Möglichkeit vermieden werden sollen. Vorzug wird Routen eingeräumt, die keine Fahrten mit Fähren enthalten. Gilt nur für motorisierte Fortbewegungsmittel. |
avoid_ |
Optional. Gibt an, ob Routen in Innenräumen nach Möglichkeit vermieden werden sollen. Vorzug haben Routen, die keine Indoor-Navigation enthalten. Gilt nur für den |
Versand
Der Versand eines einzelnen Artikels von einer Abholstelle zu einer Lieferstelle. Damit die Lieferung als ausgeführt gilt, muss ein einzelnes Fahrzeug einen der Abholorte aufsuchen (und seine Reservekapazitäten entsprechend verringern) und später einen der Lieferorte aufsuchen (und seine Reservekapazitäten entsprechend wieder erhöhen).
Felder | |
---|---|
display_ |
Der benutzerdefinierte Anzeigename der Sendung. Sie kann bis zu 63 Zeichen lang sein und UTF-8-Zeichen enthalten. |
pickups[] |
Abholoptionen, die mit der Sendung verknüpft sind. Wenn nichts angegeben ist, muss das Fahrzeug nur einen Standort anfahren, der den Lieferungen entspricht. |
deliveries[] |
Mit der Sendung verknüpfte Lieferalternativen. Wenn nichts angegeben ist, muss das Fahrzeug nur einen Standort aufsuchen, der den Abholorten entspricht. |
load_ |
Anforderungen an die Ladung der Sendung (z. B. Gewicht, Volumen, Anzahl der Paletten usw.) Die Schlüssel in der Zuordnung sollten IDs sein, die den Typ der entsprechenden Ladung beschreiben, idealerweise auch mit den Einheiten. Beispiele: „weight_kg“, „volume_gallons“, „pallet_count“ usw. Wenn ein bestimmter Schlüssel nicht in der Zuordnung enthalten ist, wird die entsprechende Ladung als null betrachtet. |
allowed_ |
Die Fahrzeuge, die diese Lieferung durchführen können. Wenn das Feld leer ist, kann die Aktion von allen Fahrzeugen ausgeführt werden. Fahrzeuge werden in der |
costs_ |
Gibt die Kosten an, die bei der Lieferung dieser Sendung mit jedem Fahrzeug anfallen. Falls angegeben, muss Folgendes vorhanden sein:
Diese Kosten müssen in derselben Einheit wie |
costs_ |
Indizes der Fahrzeuge, für die |
pickup_ |
Gibt die maximale absolute Umwegzeit im Vergleich zum kürzesten Weg von der Abholung zur Lieferung an. Wenn angegeben, muss der Wert nicht negativ sein und die Sendung muss mindestens eine Abholung und eine Zustellung enthalten. Angenommen, t ist die kürzeste Zeit, die benötigt wird, um von der ausgewählten Abholoption direkt zur ausgewählten Lieferoption zu gelangen. Wenn Sie dann
Wenn für dieselbe Sendung sowohl relative als auch absolute Limits angegeben sind, wird für jedes mögliche Abhol-/Lieferpaar das strengere Limit verwendet. Seit Oktober 2017 werden Umwege nur unterstützt, wenn die Reisedauer nicht vom Fahrzeug abhängt. |
pickup_ |
Gibt die maximale Dauer vom Beginn der Abholung bis zum Beginn der Zustellung einer Sendung an. Wenn angegeben, muss der Wert nicht negativ sein und die Sendung muss mindestens eine Abholung und eine Zustellung enthalten. Das hängt nicht davon ab, welche Alternativen für die Abholung und Lieferung ausgewählt werden, und auch nicht von der Fahrzeuggeschwindigkeit. Dieser Wert kann zusammen mit Einschränkungen für die maximale Umleitung angegeben werden. Die Lösung berücksichtigt dann beide Spezifikationen. |
shipment_ |
Nicht leerer String, der den „Typ“ für diese Sendung angibt. Mit dieser Funktion können Sie Inkompatibilitäten oder Anforderungen zwischen Unterscheidet sich von |
label |
Gibt ein Label für diese Sendung an. Dieses Label wird in der Antwort im Feld |
ignore |
Wenn „wahr“ festgelegt ist, wird diese Sendung übersprungen, aber es wird kein Wenn Sie einen Versand ignorieren, führt dies zu einem Validierungsfehler, wenn sich Es ist zulässig, eine Lieferung zu ignorieren, die in |
penalty_ |
Wenn die Sendung nicht abgeschlossen wird, wird diese Strafe auf die Gesamtkosten der Routen angerechnet. Ein Versand gilt als abgeschlossen, wenn eine der Abhol- und Lieferoptionen in Anspruch genommen wird. Die Kosten können in derselben Einheit angegeben werden, die für alle anderen kostenbezogenen Felder im Modell verwendet wird. Sie müssen positiv sein. WICHTIG: Wenn diese Strafe nicht angegeben ist, gilt sie als unendlich, d.h. die Sendung muss abgeschlossen werden. |
pickup_ |
Gibt die maximale relative Umwegzeit im Vergleich zum kürzesten Weg von der Abholung zur Lieferung an. Wenn angegeben, muss der Wert nicht negativ sein und die Sendung muss mindestens eine Abholung und eine Zustellung enthalten. Angenommen, t ist die kürzeste Zeit, die benötigt wird, um von der ausgewählten Abholoption direkt zur ausgewählten Lieferoption zu gelangen. Wenn Sie dann
Wenn für dieselbe Sendung sowohl relative als auch absolute Limits angegeben sind, wird für jedes mögliche Abhol-/Lieferpaar das strengere Limit verwendet. Seit Oktober 2017 werden Umwege nur unterstützt, wenn die Reisedauer nicht vom Fahrzeug abhängt. |
Laden
Bei einem Besuch kann der Fahrzeuglast bei einer Abholung ein vordefinierter Wert hinzugefügt oder bei einer Lieferung abgezogen werden. Dieser Betrag wird in dieser Nachricht definiert. load_demands
ansehen.
Felder | |
---|---|
amount |
Die Auslastung des Fahrzeugs, das den entsprechenden Besuch durchführt, variiert. Da es sich um eine Ganzzahl handelt, sollten Nutzer eine geeignete Einheit auswählen, um Abweichungen zu vermeiden. Muss ≥ 0 sein. |
VisitRequest
Anfrage für einen Besuch, der mit einem Fahrzeug durchgeführt werden kann: Es hat einen (oder zwei, siehe unten) geografischen Standort, Öffnungszeiten, die durch Zeitfenster dargestellt werden, und eine Dienstleistungsdauer (Zeit, die das Fahrzeug nach der Ankunft für die Abholung oder Abgabe von Waren benötigt).
Felder | |
---|---|
arrival_ |
Der geografische Standort, an dem das Fahrzeug bei dieser |
arrival_ |
Der Wegpunkt, an dem das Fahrzeug ankommt, wenn es diese |
departure_ |
Der geografische Standort, an dem das Fahrzeug nach Abschluss dieser |
departure_ |
Der Wegpunkt, von dem aus das Fahrzeug nach Abschluss dieser |
tags[] |
Gibt Tags an, die an die Besuchsanfrage angehängt sind. Leere oder doppelte Strings sind nicht zulässig. |
time_ |
Zeitfenster, die die Ankunftszeit bei einem Besuch einschränken. Hinweis: Ein Fahrzeug kann außerhalb des Zeitfensters für die Ankunftszeit abfahren. Das bedeutet, dass Ankunftszeit und Dauer nicht innerhalb eines Zeitfensters liegen müssen. Dies kann zu Wartezeiten führen, wenn das Fahrzeug vor Wenn Die Zeitfenster dürfen sich nicht überschneiden, d. h., sie dürfen nicht aneinander angrenzen. Außerdem müssen sie in aufsteigender Reihenfolge angegeben werden.
|
duration |
Dauer des Besuchs, d.h. die Zeit, die das Fahrzeug zwischen Ankunft und Abfahrt verbringt (wird zur möglichen Wartezeit addiert, siehe |
cost |
Kosten für die Erledigung dieser Besuchsanfrage auf einer Fahrzeugroute. So können Sie für jede alternative Abholung oder Lieferung einer Sendung unterschiedliche Kosten bezahlen. Diese Kosten müssen in derselben Einheit wie |
load_ |
Ladeanforderungen dieser Besuchsanfrage. Dieses Feld funktioniert genauso wie das Feld |
visit_ |
Gibt die Arten der Besuche an. So kann zusätzliche Zeit für ein Fahrzeug für diesen Besuch eingeplant werden (siehe Ein Typ kann nur einmal vorkommen. |
label |
Gibt ein Label für diese |
ShipmentModel
Ein Versandmodell enthält eine Reihe von Sendungen, die von einer Reihe von Fahrzeugen ausgeführt werden müssen, wobei die Gesamtkosten minimiert werden, die sich aus der Summe der folgenden Kosten zusammensetzen:
- die Kosten für die Routenplanung der Fahrzeuge (Summe der Kosten pro Gesamtzeit, Kosten pro Fahrtzeit und Fixkosten für alle Fahrzeuge).
- die Strafen für nicht ausgeführte Sendungen.
- die Kosten für die gesamte Dauer der Sendungen
Felder | |
---|---|
shipments[] |
Sendungen, die im Modell ausgeführt werden müssen. |
vehicles[] |
Fahrzeuge, die für Besuche verwendet werden können. |
global_ |
Globaler Beginn und Ende des Modells: Zeiten außerhalb dieses Bereichs können nicht als gültig betrachtet werden. Der Zeitraum des Modells darf nicht länger als ein Jahr sein. Das heißt, der Wenn Sie |
global_ |
Wenn dieser Wert nicht festgelegt ist, wird als Standardwert 00:00:00 UTC, 1. Januar 1971 (d. h. Sekunden: 31536000, Nanosekunden: 0) verwendet. |
global_ |
Die „globale Dauer“ des gesamten Plans ist die Differenz zwischen der frühesten effektiven Startzeit und der spätesten effektiven Endzeit aller Fahrzeuge. Nutzer können dieser Menge einen Kostenpreis pro Stunde zuweisen, um beispielsweise die schnellstmögliche Auftragsausführung zu optimieren. Diese Kosten müssen in derselben Einheit wie |
duration_ |
Gibt die im Modell verwendeten Zeit- und Entfernungsmatrizen an. Wenn dieses Feld leer ist, werden je nach Wert des Felds Typische Syntax:
|
duration_ |
Tags, die die Quellen der Zeit- und Entfernungsmatrizen definieren; Tags entsprechen |
duration_ |
Tags, die die Ziele der Zeit- und Entfernungsmatrizen definieren; Tags entsprechen |
transition_ |
Dem Modell hinzugefügte Übergangsattribute. |
shipment_ |
Kombinationen von nicht kompatiblen Versandtypen (siehe |
shipment_ |
|
precedence_ |
Eine Reihe von Vorrangregeln, die im Modell erzwungen werden müssen. |
max_ |
Die maximale Anzahl aktiver Fahrzeuge wird eingeschränkt. Ein Fahrzeug ist aktiv, wenn auf seiner Route mindestens ein Versand erfolgt. So lässt sich die Anzahl der Routen begrenzen, wenn es weniger Fahrer als Fahrzeuge gibt und die Fahrzeugflotte heterogen ist. Bei der Optimierung wird dann die beste Teilmenge der Fahrzeuge ausgewählt. Muss strikt positiv sein. |
DurationDistanceMatrix
Gibt eine Matrix mit Dauer und Entfernung vom Start- und Endpunkt des Besuchs zum Start- und Endpunkt des Fahrzeugs an.
Felder | |
---|---|
rows[] |
Gibt die Zeilen der Matrix für Dauer und Entfernung an. Es muss dieselbe Anzahl an Elementen wie |
vehicle_ |
Tag, das angibt, für welche Fahrzeuge diese Matrix mit Dauer und Entfernung gilt. Wenn das Feld leer ist, gilt dies für alle Fahrzeuge und es kann nur eine einzige Matrix geben. Jeder Fahrzeugstart muss genau einer Matrix entsprechen, d.h. genau eines der Alle Matrizen müssen eine unterschiedliche |
Zeile
Gibt eine Zeile der Matrix für Dauer und Entfernung an.
Felder | |
---|---|
durations[] |
Dauerwerte für eine bestimmte Zeile. Es muss dieselbe Anzahl an Elementen wie |
meters[] |
Entfernungswerte für eine bestimmte Zeile. Wenn sich keine Kosten oder Einschränkungen auf Entfernungen im Modell beziehen, kann dieses Feld leer bleiben. Andernfalls muss es so viele Elemente wie |
PrecedenceRule
Eine Vorrangregel zwischen zwei Ereignissen (jedes Ereignis ist die Abholung oder Zustellung einer Sendung): Das „zweite“ Ereignis muss mindestens offset_duration
nach Beginn des „ersten“ Ereignisses beginnen.
Mehrere Vorrangstufen können sich auf dieselben (oder ähnliche) Ereignisse beziehen, z.B. „Abholung von B erfolgt nach Lieferung von A“ und „Abholung von C erfolgt nach Abholung von B“.
Außerdem gelten Vorrangregeln nur, wenn beide Sendungen ausgeführt werden. Andernfalls werden sie ignoriert.
Felder | |
---|---|
first_ |
Gibt an, ob das erste Ereignis eine Übermittlung ist. |
second_ |
Gibt an, ob das „zweite“ Ereignis eine Zustellung ist. |
offset_ |
Die Zeitverschiebung zwischen dem ersten und dem zweiten Ereignis. Sie kann negativ sein. |
first_ |
Versandindex des ersten Ereignisses. Dieses Feld muss angegeben werden. |
second_ |
Versandindex des „zweiten“ Ereignisses. Dieses Feld muss angegeben werden. |
ShipmentRoute
Die Route eines Fahrzeugs kann entlang der Zeitachse so zerlegt werden (wir gehen davon aus, dass es n Besuche gibt):
| | | | | T[2], | | |
| Transition | Visit #0 | | | V[2], | | |
| #0 | aka | T[1] | V[1] | ... | V[n-1] | T[n] |
| aka T[0] | V[0] | | | V[n-2],| | |
| | | | | T[n-1] | | |
^ ^ ^ ^ ^ ^ ^ ^
vehicle V[0].start V[0].end V[1]. V[1]. V[n]. V[n]. vehicle
start (arrival) (departure) start end start end end
Beachten Sie, dass wir zwischen folgenden Begriffen unterscheiden:
- „Punktuelle Ereignisse“, z. B. Start und Ende des Fahrzeugs sowie Start und Ende jedes Besuchs (d. h. Ankunft und Abfahrt). Sie treten zu einer bestimmten Sekunde auf.
- „Zeitintervalle“, z. B. die Besuche selbst und der Übergang zwischen den Besuchen. Zeitintervalle können manchmal eine Dauer von null haben, d. h. sie beginnen und enden in derselben Sekunde. Häufig haben sie jedoch eine positive Dauer.
Invarianten:
- Bei n Besuchen gibt es n + 1 Übergänge.
- Ein Besuch wird immer von einer vorherigen (gleicher Index) und einer nachfolgenden (Index + 1) Navigationsaktion umgeben.
- Auf das Starten des Fahrzeugs folgt immer der Übergang 0.
- Dem Ende des Fahrzeugs geht immer die Übergabe #n voraus.
Im Detail passiert bei einer Transition
und einer Visit
Folgendes:
---+-------------------------------------+-----------------------------+-->
| TRANSITION[i] | VISIT[i] |
| | |
| * TRAVEL: the vehicle moves from | PERFORM the visit: |
| VISIT[i-1].departure_location to | |
| VISIT[i].arrival_location, which | * Spend some time: |
| takes a given travel duration | the "visit duration". |
| and distance | |
| | * Load or unload |
| * BREAKS: the driver may have | some quantities from the |
| breaks (e.g. lunch break). | vehicle: the "demand". |
| | |
| * WAIT: the driver/vehicle does | |
| nothing. This can happen for | |
| many reasons, for example when | |
| the vehicle reaches the next | |
| event's destination before the | |
| start of its time window | |
| | |
| * DELAY: *right before* the next | |
| arrival. E.g. the vehicle and/or | |
| driver spends time unloading. | |
| | |
---+-------------------------------------+-----------------------------+-->
^ ^ ^
V[i-1].end V[i].start V[i].end
Und hier ist noch eine kurze Zusammenfassung, wie sich TRAVEL, BREAKS, DELAY und WAIT während eines Übergangs anordnen lassen.
- Sie überschneiden sich nicht.
- DELAY ist eindeutig und muss ein zusammenhängender Zeitraum direkt vor dem nächsten Besuch (oder dem Ende des Fahrzeugs) sein. Daher reicht es aus, die Verzögerungsdauer zu kennen, um den Beginn und das Ende zu ermitteln.
- Die BREAKS sind zusammenhängende, nicht überlappende Zeiträume. Die Antwort gibt den Beginn und die Dauer jeder Pause an.
- TRAVEL und WAIT sind „vorhersagbar“: Sie können während dieser Übergänge mehrmals unterbrochen werden. Kunden können davon ausgehen, dass die Fahrt „so bald wie möglich“ erfolgt und dass die verbleibende Zeit mit „warten“ gefüllt wird.
Ein (komplexes) Beispiel:
TRANSITION[i]
--++-----+-----------------------------------------------------------++-->
|| | | | | | | ||
|| T | B | T | | B | | D ||
|| r | r | r | W | r | W | e ||
|| a | e | a | a | e | a | l ||
|| v | a | v | i | a | i | a ||
|| e | k | e | t | k | t | y ||
|| l | | l | | | | ||
|| | | | | | | ||
--++-----------------------------------------------------------------++-->
Felder | |
---|---|
vehicle_ |
Fahrzeug, das die Route ausführt, identifiziert durch seinen Index in der Quelle |
vehicle_ |
Label des Fahrzeugs, das diese Route fährt. Entspricht |
vehicle_ |
Die Uhrzeit, zu der das Fahrzeug seine Route beginnt. |
vehicle_ |
Die Uhrzeit, zu der das Fahrzeug seine Route beendet. |
visits[] |
Eine geordnete Folge von Besuchen, die eine Route darstellen. „visits[i]“ ist der i-te Besuch in der Route. Wenn dieses Feld leer ist, gilt das Fahrzeug als nicht genutzt. |
transitions[] |
Sortierte Liste der Übergänge für die Route. |
has_ |
Wenn
Die Ankunft bei next_visit erfolgt aufgrund der erhöhten geschätzten Fahrtzeit von |
route_ |
Die codierte Polyliniendarstellung der Route. Dieses Feld wird nur ausgefüllt, wenn |
breaks[] |
Für das Fahrzeug, das diese Route fährt, geplante Pausen. Die Sequenz |
metrics |
Dauer, Entfernung und Auslastungsmesswerte für diese Route. Die Felder von |
route_ |
Kosten der Route, aufgeschlüsselt nach kostenbezogenen Anfragefeldern. Die Schlüssel sind Proto-Pfade, bezogen auf die Eingabe OptimizeToursRequest, z. B. „model.shipments.pickups.cost“. Die Werte sind die Gesamtkosten, die durch das entsprechende Kostenfeld generiert wurden, aggregiert über die gesamte Route. Mit anderen Worten: „costs["model.shipments.pickups.cost"]“ ist die Summe aller Abholkosten auf der Route. Alle im Modell definierten Kosten werden hier ausführlich aufgeführt, mit Ausnahme der Kosten im Zusammenhang mit TransitionAttributes, die seit Januar 2022 nur noch zusammengefasst erfasst werden. |
route_ |
Gesamtkosten der Route. Die Summe aller Kosten in der Kostenübersicht. |
Pause
Daten, die die Ausführung einer Pause darstellen.
Felder | |
---|---|
start_ |
Beginn einer Pause. |
duration |
Dauer einer Pause. |
EncodedPolyline
Die codierte Darstellung einer Polylinie. Weitere Informationen zur Polyliniencodierung finden Sie hier: https://developers.google.com/maps/documentation/utilities/polylinealgorithm https://developers.google.com/maps/documentation/javascript/reference/geometry#encoding.
Felder | |
---|---|
points |
String, der codierte Punkte der Polylinie darstellt. |
Wechsel
Übergang zwischen zwei Ereignissen auf der Route. Siehe Beschreibung von ShipmentRoute
.
Wenn das Fahrzeug keine start_location
und/oder end_location
hat, sind die entsprechenden Fahrtmesswerte 0.
Felder | |
---|---|
travel_ |
Reisedauer während dieser Umstellung. |
travel_ |
Zurückgelegte Strecke während der Umstellung. |
traffic_ |
Wenn Traffic über |
delay_ |
Summe der Verzögerungsdauern, die auf diesen Übergang angewendet werden. Falls vorhanden, beginnt die Verzögerung genau |
break_ |
Summe der Dauer der Pausen, die während dieses Übergangs auftreten, falls vorhanden. Details zum Beginn und zur Dauer jeder Pause werden in |
wait_ |
Die Wartezeit während dieser Umstellung. Die Wartezeit entspricht der Inaktivitätsdauer und schließt keine Pausen ein. Beachten Sie außerdem, dass diese Wartezeit in mehrere nicht zusammenhängende Intervalle unterteilt werden kann. |
total_ |
Die Gesamtdauer der Umstellung, nur zur Information. Sie entspricht:
|
start_ |
Startzeit dieses Übergangs. |
route_ |
Die codierte Polyliniendarstellung der Route, der während des Übergangs gefolgt wurde. Dieses Feld wird nur ausgefüllt, wenn |
route_ |
Nur Ausgabe. Ein undurchsichtiges Token, das an das Navigation SDK übergeben werden kann, um die Route während der Navigation neu zu erstellen und bei einer Umleitung die ursprüngliche Absicht beim Erstellen der Route zu berücksichtigen. Dieses Token als intransparenten Blob behandeln Vergleichen Sie den Wert nicht zwischen Anfragen, da er sich auch dann ändern kann, wenn der Dienst genau dieselbe Route zurückgibt. Dieses Feld wird nur ausgefüllt, wenn |
vehicle_ |
Fahrzeuglasten während dieser Umstellung für jeden Typ, der entweder in der Die Lasten während der ersten Umstellung sind die Anfangslasten der Fahrzeugroute. Nach jedem Besuch wird die |
VehicleLoad
Die tatsächliche Ladung des Fahrzeugs an einem bestimmten Punkt der Route für einen bestimmten Typ (siehe Transition.vehicle_loads
).
Felder | |
---|---|
amount |
Die Belastung des Fahrzeugs für den jeweiligen Typ. Die Maßeinheit der Last wird in der Regel durch den Typ angegeben. |
Aufrufen
Ein Besuch, der während einer Route erfolgt. Dieser Besuch entspricht der Abholung oder Lieferung eines Shipment
.
Felder | |
---|---|
shipment_ |
Index des Felds |
is_ |
Wenn „wahr“ ist, entspricht der Besuch der Abholung eines |
visit_ |
Index von |
start_ |
Beginn des Besuchs. Das Fahrzeug kann jedoch früher am Zielort eintreffen. Die Zeiten stimmen mit den |
load_ |
Gesamte Nachfrage nach Besuchslast als Summe aus Sendung und Besuchsanfrage |
detour |
Zusätzliche Umwegzeit aufgrund der Sendungen, die vor dem Besuch auf der Route besucht wurden, und der potenziellen Wartezeit aufgrund von Zeitfenstern. Wenn es sich bei dem Besuch um eine Lieferung handelt, wird der Umweg vom entsprechenden Abholbesuch berechnet und entspricht folgendem Wert:
Andernfalls wird er anhand des Fahrzeugs
|
shipment_ |
Kopie der entsprechenden |
visit_ |
Kopie der entsprechenden |
ShipmentTypeIncompatibility
Gibt Inkompatibilitäten zwischen Sendungen an, die sich auf den shipment_type beziehen. Die Anzeige inkompatibler Sendungen auf derselben Route ist je nach Inkompatibilitätsmodus eingeschränkt.
Felder | |
---|---|
types[] |
Liste der inkompatiblen Typen. Zwei Sendungen mit unterschiedlichen |
incompatibility_ |
Modus, der auf die Inkompatibilität angewendet wird. |
IncompatibilityMode
Modi, die festlegen, wie die Anzeige inkompatibler Sendungen auf derselben Route eingeschränkt wird.
Enums | |
---|---|
INCOMPATIBILITY_MODE_UNSPECIFIED |
Nicht angegebener Inkompatibilitätsmodus. Dieser Wert sollte niemals verwendet werden. |
NOT_PERFORMED_BY_SAME_VEHICLE |
In diesem Modus können zwei Sendungen mit inkompatiblen Typen niemals dasselbe Fahrzeug nutzen. |
NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY |
Bei zwei Sendungen mit inkompatiblen Typen im
|
ShipmentTypeRequirement
Hier werden die Anforderungen an Sendungen basierend auf ihrem „shipment_type“ angegeben. Die Details der Anforderung werden durch den Anforderungsmodus definiert.
Felder | |
---|---|
required_ |
Liste der alternativen Versandtypen, die für die |
dependent_ |
Für alle Sendungen mit einem Typ im Feld HINWEIS: Anforderungsketten, bei denen eine |
requirement_ |
Modus, der auf die Anforderung angewendet wird. |
RequirementMode
Modi, die das Aussehen abhängiger Sendungen auf einer Route definieren.
Enums | |
---|---|
REQUIREMENT_MODE_UNSPECIFIED |
Nicht angegebener Anforderungsmodus. Dieser Wert sollte niemals verwendet werden. |
PERFORMED_BY_SAME_VEHICLE |
In diesem Modus müssen alle „abhängigen“ Sendungen dasselbe Fahrzeug wie mindestens eine ihrer „erforderlichen“ Sendungen nutzen. |
IN_SAME_VEHICLE_AT_PICKUP_TIME |
Im Modus Für die Abholung einer „abhängigen“ Sendung muss daher Folgendes angegeben sein:
|
IN_SAME_VEHICLE_AT_DELIVERY_TIME |
Wie bisher, mit der Ausnahme, dass die „abhängigen“ Sendungen zum Zeitpunkt der Lieferung eine „erforderliche“ Sendung im Fahrzeug haben müssen. |
SkippedShipment
Gibt Details zu nicht ausgeführten Sendungen in einer Lösung an. Bei einfachen Fällen und/oder wenn wir die Ursache für das Überspringen ermitteln können, geben wir den Grund hier an.
Felder | |
---|---|
index |
Der Index entspricht dem Index der Sendung in der Quelle |
label |
Kopie der entsprechenden |
reasons[] |
Eine Liste der Gründe, warum die Sendung übersprungen wurde. Siehe Kommentar oben |
Grund
Wenn wir den Grund für das Überspringen der Sendung erklären können, wird er hier aufgeführt. Wenn der Grund nicht für alle Fahrzeuge gleich ist, enthält reason
mehr als ein Element. Für eine übersprungene Sendung dürfen keine doppelten Gründe angegeben werden, d.h. alle Felder müssen mit Ausnahme von example_vehicle_index
identisch sein. Beispiel:
reasons {
code: DEMAND_EXCEEDS_VEHICLE_CAPACITY
example_vehicle_index: 1
example_exceeded_capacity_type: "Apples"
}
reasons {
code: DEMAND_EXCEEDS_VEHICLE_CAPACITY
example_vehicle_index: 3
example_exceeded_capacity_type: "Pears"
}
reasons {
code: CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT
example_vehicle_index: 1
}
Der übersprungene Versand ist mit allen Fahrzeugen nicht kompatibel. Die Gründe können für alle Fahrzeuge unterschiedlich sein, aber die Kapazität für „Äpfel“ wird bei mindestens einem Fahrzeug überschritten (einschließlich Fahrzeug 1), die Kapazität für „Birnen“ wird bei mindestens einem Fahrzeug überschritten (einschließlich Fahrzeug 3) und die Entfernungsbeschränkung wird bei mindestens einem Fahrzeug überschritten (einschließlich Fahrzeug 1).
Felder | |
---|---|
code |
Weitere Informationen finden Sie in den Kommentaren zum Code. |
example_ |
Wenn der Grundcode |
example_ |
Wenn der Grund mit einer Inkompatibilität zwischen Sendung und Fahrzeug zusammenhängt, enthält dieses Feld den Index eines entsprechenden Fahrzeugs. |
Code
Code, der den Grundtyp angibt. Die Reihenfolge spielt hier keine Rolle. Insbesondere gibt es keinen Hinweis darauf, ob ein bestimmter Grund in der Lösung vor einem anderen erscheint, wenn beide zutreffen.
Enums | |
---|---|
CODE_UNSPECIFIED |
Dieser Wert sollte nicht verwendet werden. |
NO_VEHICLE |
Im Modell ist kein Fahrzeug vorhanden, sodass alle Lieferungen nicht möglich sind. |
DEMAND_EXCEEDS_VEHICLE_CAPACITY |
Die Anforderungen der Sendung übersteigen die Kapazität eines Fahrzeugs für einige Kapazitätstypen, darunter example_exceeded_capacity_type . |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT |
Die für die Durchführung dieser Lieferung erforderliche Mindeststrecke, d.h. von der Für diese Berechnung werden die geodätischen Entfernungen verwendet. |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT |
Die für diese Lieferung erforderliche Mindestzeit, einschließlich Fahrzeit, Wartezeit und Servicezeit, überschreitet die Hinweis: Die Reisezeit wird im Best-Case-Szenario berechnet, nämlich als geodätische Entfernung × 36 m/s (ungefähr 130 km/h). |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT |
Wie oben, aber wir vergleichen nur die minimale Reisezeit und die travel_duration_limit des Fahrzeugs. |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS |
Das Fahrzeug kann diese Lieferung im Bestfall nicht ausführen (siehe CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT für die Zeitberechnung), wenn es zum frühestmöglichen Startzeitpunkt startet: Die Gesamtzeit würde dazu führen, dass das Fahrzeug nach seiner spätesten Endzeit endet. |
VEHICLE_NOT_ALLOWED |
Das Feld allowed_vehicle_indices der Sendung ist nicht leer und dieses Fahrzeug gehört nicht dazu. |
TimeWindow
Zeitfenster begrenzen die Zeit eines Ereignisses, z. B. die Ankunftszeit bei einem Besuch oder den Beginn und das Ende eines Fahrzeugs.
Die festen Zeitfenstergrenzen start_time
und end_time
erzwingen den frühesten und spätesten Zeitpunkt des Ereignisses, sodass start_time <= event_time <=
end_time
. Die untere Grenze des weichen Zeitfensters, soft_start_time
, gibt an, dass das Ereignis am oder nach soft_start_time
stattfinden soll. Die Kosten sind dabei proportional dazu, wie lange vor „soft_start_time“ das Ereignis eintritt. Die obere Grenze des weichen Zeitfensters, soft_end_time
, gibt an, dass das Ereignis am oder vor soft_end_time
stattfinden soll. Die Kosten sind proportional dazu, wie lange nach soft_end_time
das Ereignis eintritt. start_time
, end_time
, soft_start_time
und soft_end_time
müssen innerhalb der globalen Zeitlimits liegen (siehe ShipmentModel.global_start_time
und ShipmentModel.global_end_time
) und Folgendes einhalten:
0 <= `start_time` <= `end_time` and
0 <= `start_time` <= `soft_start_time` and
0 <= `soft_end_time` <= `end_time`.
Felder | |
---|---|
start_ |
Der Beginn des Zeitfensters. Wenn nicht angegeben, wird |
end_ |
Das Ende des Zeitfensters. Wenn nicht angegeben, wird |
soft_ |
Die Startzeit des Zeitfensters. |
soft_ |
Das ungefähre Ende des Zeitfensters. |
cost_ |
Kosten pro Stunde, die zu den anderen Kosten im Modell hinzugefügt werden, wenn das Ereignis vor „soft_start_time“ eintritt. Die Berechnung erfolgt so:
Diese Kosten müssen positiv sein. Das Feld kann nur festgelegt werden, wenn „soft_start_time“ festgelegt wurde. |
cost_ |
Kosten pro Stunde, die den anderen Kosten im Modell hinzugefügt werden, wenn das Ereignis nach
Diese Kosten müssen positiv sein. Das Feld kann nur festgelegt werden, wenn |
TransitionAttributes
Gibt Attribute von Übergängen zwischen zwei aufeinanderfolgenden Besuchen auf einer Route an. Für dieselbe Umstellung können mehrere TransitionAttributes
gelten. In diesem Fall werden alle zusätzlichen Kosten addiert und die strengste Einschränkung oder das strengste Limit angewendet (entsprechend der natürlichen „AND“-Semantik).
Felder | |
---|---|
src_ |
Tags, die die (src->dst)-Übergänge definieren, auf die diese Attribute angewendet werden. Ein Quellbesuch oder Fahrzeugstart wird nur dann abgeglichen, wenn |
excluded_ |
|
dst_ |
Ein Zielbesuch oder ein Fahrzeugende stimmt genau dann überein, wenn |
excluded_ |
|
cost |
Gibt die Kosten für die Durchführung dieser Umwandlung an. Dieser Wert hat dieselbe Einheit wie alle anderen Kosten im Modell und darf nicht negativ sein. Sie wird auf alle anderen bestehenden Kosten aufgeschlagen. |
cost_ |
Gibt einen Kostenpreis pro Kilometer an, der auf die zurückgelegte Strecke bei diesem Übergang angewendet wird. Sie wird zu allen |
distance_ |
Gibt ein Limit für die zurückgelegte Strecke bei diesem Übergang an. Seit Juni 2021 werden nur noch Softlimits unterstützt. |
delay |
Gibt eine Verzögerung an, die beim Ausführen dieses Übergangs auftritt. Diese Verzögerung tritt immer nach dem Ende des Quellbesuchs und vor Beginn des Zielbesuchs auf. |
Fahrzeug
Stellt ein Fahrzeug mit einem Versandproblem dar. Wenn Sie ein Versandproblem beheben, wird für dieses Fahrzeug eine Route von start_location
nach end_location
erstellt. Eine Route besteht aus einer Folge von Besuchen (siehe ShipmentRoute
).
Felder | |
---|---|
display_ |
Der benutzerdefinierte Anzeigename des Fahrzeugs. Sie kann bis zu 63 Zeichen lang sein und UTF-8-Zeichen enthalten. |
travel_ |
Die Mobilitätsform, die sich auf die für das Fahrzeug nutzbaren Straßen und die Geschwindigkeit auswirkt. Siehe auch |
route_ |
Eine Reihe von Bedingungen, die erfüllt sein müssen und sich auf die Berechnung von Routen für das betreffende Fahrzeug auswirken. |
start_ |
Geografische Position, an der das Fahrzeug startet, bevor es Sendungen abholt. Wenn keine Angabe erfolgt, beginnt das Fahrzeug bei der ersten Abholung. Wenn das Versandmodell Zeit- und Entfernungsmatrizen hat, darf |
start_ |
Wegpunkt, der einen geografischen Standort darstellt, an dem das Fahrzeug startet, bevor es Sendungen abholt. Wenn weder |
end_ |
Geografische Position, an der das Fahrzeug endet, nachdem es seine letzte |
end_ |
Wegpunkt, der einen geografischen Ort darstellt, an dem das Fahrzeug anhält, nachdem es seine letzte |
start_ |
Gibt Tags an, die am Anfang der Route des Fahrzeugs angebracht sind. Leere oder doppelte Strings sind nicht zulässig. |
end_ |
Gibt Tags an, die am Ende der Route des Fahrzeugs angehängt sind. Leere oder doppelte Strings sind nicht zulässig. |
start_ |
Zeitfenster, in denen das Fahrzeug den Startort verlassen kann. Sie müssen innerhalb der globalen Zeitlimits liegen (siehe Zeitfenster, die zum selben wiederholten Feld gehören, dürfen sich nicht überschneiden. Sie müssen also nicht aneinandergrenzen und in chronologischer Reihenfolge angeordnet sein.
|
end_ |
Zeitfenster, in denen das Fahrzeug am Zielort ankommen kann. Sie müssen innerhalb der globalen Zeitlimits liegen (siehe Zeitfenster, die zum selben wiederholten Feld gehören, dürfen sich nicht überschneiden. Sie müssen also nicht aneinandergrenzen und in chronologischer Reihenfolge angeordnet sein.
|
unloading_ |
Für das Fahrzeug gilt eine Richtlinie für das Entladen. |
load_ |
Kapazitäten des Fahrzeugs (z. B. Gewicht, Volumen, Anzahl der Paletten) Die Schlüssel in der Zuordnung sind die Kennungen der Art der Auslastung, die mit den Schlüsseln des Felds |
cost_ |
Fahrzeugkosten: Alle Kosten müssen in derselben Einheit wie Kosten pro Stunde der Fahrzeugroute. Diese Kosten werden auf die Gesamtzeit der Route angewendet und umfassen Fahrtzeit, Wartezeit und Besuchszeit. Die Verwendung von |
cost_ |
Kosten pro zurückgelegte Stunde der Fahrzeugroute. Diese Kosten werden nur auf die Fahrzeit der Route angewendet (d.h. die in |
cost_ |
Kosten pro Kilometer der Fahrzeugroute. Diese Kosten werden auf die in der |
fixed_ |
Pauschalkosten, die anfallen, wenn dieses Fahrzeug für die Bearbeitung einer Sendung verwendet wird. |
used_ |
Dieses Feld gilt nur für Fahrzeuge, deren Route keine Sendungen umfasst. Gibt an, ob das Fahrzeug in diesem Fall als gebraucht betrachtet werden soll oder nicht. Wenn „wahr“ festgelegt ist, fährt das Fahrzeug vom Start- zum Zielort, auch wenn es keine Sendungen abwickelt. Die Zeit- und Entfernungskosten für die Fahrt vom Start- zum Zielort werden berücksichtigt. Andernfalls fährt es nicht vom Start- zum Zielort und für dieses Fahrzeug sind keine |
route_ |
Limit für die Gesamtdauer der Route des Fahrzeugs. In einem bestimmten |
travel_ |
Beschränkung, die auf die Fahrtdauer der Route des Fahrzeugs angewendet wird. In einer bestimmten |
route_ |
Beschränkung, die auf die Gesamtstrecke der Route des Fahrzeugs angewendet wird. In einer bestimmten |
extra_ |
Hier wird eine Zuordnung von Strings vom Typ „visit_types“ zu Zeiträumen angegeben. Die Dauer ist die Zeit, die zusätzlich zu Wenn eine Besuchsanfrage mehrere Typen hat, wird für jeden Typ auf der Karte eine Dauer hinzugefügt. |
break_ |
Beschreibt den Pausenplan, der für dieses Fahrzeug gelten soll. Wenn das Feld leer ist, werden für dieses Fahrzeug keine Pausen geplant. |
label |
Gibt ein Label für dieses Fahrzeug an. Dieses Label wird in der Antwort als |
ignore |
Wenn „true“ angegeben ist, muss Wenn ein Versand von einem in Wenn ein Versand von einem ignorierten Fahrzeug in |
travel_ |
Gibt einen Multiplikator an, mit dem die Fahrtzeiten dieses Fahrzeugs erhöht oder verringert werden können. Wenn Sie diesen Wert beispielsweise auf 2,0 festlegen, ist dieses Fahrzeug langsamer und die Fahrzeiten sind doppelt so lang wie bei Standardfahrzeugen. Dieser Multiplikator hat keine Auswirkungen auf die Besuchsdauer. Wenn WARNUNG: Die Fahrtzeiten werden nach Anwendung dieses Multiplikators, aber vor der Ausführung numerischer Vorgänge auf die nächste Sekunde gerundet. Ein kleiner Multiplikator kann daher zu einem Genauigkeitsverlust führen. Weitere Informationen finden Sie unter |
DurationLimit
Ein Limit, das die maximale Dauer der Route eines Fahrzeugs definiert. Sie kann hart oder weich sein.
Wenn ein Feld für den flexiblen Grenzwert definiert ist, müssen sowohl der Grenzwert für den flexiblen Maximalwert als auch die zugehörigen Kosten gemeinsam definiert werden.
Felder | |
---|---|
max_ |
Ein starres Limit, das die Dauer auf maximal max_duration festlegt. |
soft_ |
Ein weiches Limit, das keine maximale Dauer vorschreibt, aber bei dessen Überschreitung Kosten für die Route anfallen. Diese Kosten werden mit anderen im Modell definierten Kosten mit derselben Einheit addiert. Falls angegeben, darf |
quadratic_ |
Ein weiches Limit, das keine maximale Dauer vorschreibt, aber bei dessen Überschreitung für die Route Kosten anfallen, die quadratisch mit der Dauer ansteigen. Diese Kosten werden mit anderen im Modell definierten Kosten mit derselben Einheit addiert. Falls angegeben, darf
|
cost_ |
Kosten pro Stunde, die anfallen, wenn der Grenzwert von
Die Kosten dürfen nicht negativ sein. |
cost_ |
Kosten pro Quadratkilometer und Stunde, die anfallen, wenn der Grenzwert von Die zusätzlichen Kosten betragen 0, wenn die Dauer unter der Schwelle liegt. Andernfalls hängen die Kosten von der Dauer ab:
Die Kosten dürfen nicht negativ sein. |
LoadLimit
Definiert ein Ladelimit für ein Fahrzeug, z. B. „Dieser Lkw darf nur bis zu 3.500 kg laden“. load_limits
ansehen.
Felder | |
---|---|
soft_ |
Ein weiches Limit für die Auslastung. |
cost_ |
Wenn die Auslastung auf der Route dieses Fahrzeugs |
start_ |
Das zulässige Ladeintervall des Fahrzeugs zu Beginn der Route. |
end_ |
Das zulässige Ladeintervall des Fahrzeugs am Ende der Route. |
max_ |
Die maximal zulässige Auslastung. |
Intervall
Intervall der zulässigen Lademengen.
Felder | |
---|---|
min |
Eine akzeptable Mindestauslastung. Muss ≥ 0 sein. Wenn beide angegeben sind, muss |
max |
Eine maximal zulässige Auslastung. Muss ≥ 0 sein. Wenn keine Angabe gemacht wird, ist die maximale Auslastung durch diese Nachricht nicht eingeschränkt. Wenn beide angegeben sind, muss |
TravelMode
Mobilitätsformen, die von Fahrzeugen genutzt werden können.
Diese sollten eine Teilmenge der bevorzugten Mobilitätsarten der Google Maps Platform Routes API sein. Weitere Informationen finden Sie unter https://developers.google.com/maps/documentation/routes_preferred/reference/rest/Shared.Types/RouteTravelMode.
Enums | |
---|---|
TRAVEL_MODE_UNSPECIFIED |
Nicht angegebene Mobilitätsform, entspricht DRIVING . |
DRIVING |
Mobilitätsform, die der Wegbeschreibung für Pkw entspricht (Auto, …). |
WALKING |
Mobilitätsform, die der Wegbeschreibung für Fußgänger entspricht. |
UnloadingPolicy
Richtlinie zum Entladen eines Fahrzeugs. Gilt nur für Sendungen, die sowohl eine Abholung als auch eine Lieferung umfassen.
Andere Sendungen können unabhängig von unloading_policy
an jeder beliebigen Stelle auf der Route erfolgen.
Enums | |
---|---|
UNLOADING_POLICY_UNSPECIFIED |
Keine Angabe zu Entladerichtlinien; Lieferungen müssen direkt nach den entsprechenden Abholungen erfolgen. |
LAST_IN_FIRST_OUT |
Die Lieferungen müssen in umgekehrter Reihenfolge der Abholungen erfolgen. |
FIRST_IN_FIRST_OUT |
Die Lieferungen müssen in derselben Reihenfolge wie die Abholungen erfolgen. |
Zwischenstopp
Kapselt einen Wegpunkt ein. Wegpunkte markieren die Ankunfts- und Abfahrtsorte von Besuchsanfragen sowie die Start- und Endpunkte von Fahrzeugen.
Felder | |
---|---|
side_ |
Optional. Gibt an, dass das Fahrzeug am Standort dieses Wegpunkts an einer bestimmten Straßenseite halten soll. Wenn Sie diesen Wert festlegen, führt die Route durch den Standort, damit das Fahrzeug an der Straßenseite anhalten kann, die vom Standort aus gesehen auf der rechten Seite der Straße liegt. Diese Option funktioniert nicht für den Mobilitätsmodus „ZU FUSS“. |
Union-Feld location_type . Verschiedene Möglichkeiten, einen Standort darzustellen. Für location_type ist nur einer der folgenden Werte zulässig: |
|
location |
Ein Punkt, der anhand von geografischen Koordinaten angegeben ist, einschließlich einer optionalen Richtung. |
place_ |
Die POI-Orts-ID, die mit dem Wegpunkt verknüpft ist. |