- JSON-Darstellung
- Versand
- VisitRequest
- LatLng
- Waypoint
- Ort
- TimeWindow
- Fahrzeug
- TravelMode
- RouteModifiers
- UnloadingPolicy
- LoadLimit
- Intervall
- LoadCost
- DurationLimit
- DistanceLimit
- BreakRule
- BreakRequest
- FrequencyConstraint
- Ziel
- Typ
- DurationDistanceMatrix
- Zeile
- TransitionAttributes
- ShipmentTypeIncompatibility
- IncompatibilityMode
- ShipmentTypeRequirement
- RequirementMode
- PrecedenceRule
Ein Sendungsmodell enthält eine Reihe von Sendungen, die von einer Reihe von Fahrzeugen ausgeführt werden müssen, wobei die Gesamtkosten minimiert werden müssen. Diese setzen sich zusammen aus:
- 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 globale Dauer der Sendungen
| JSON-Darstellung |
|---|
{ "shipments": [ { object ( |
| Felder | |
|---|---|
shipments[] |
Satz von Sendungen, die im Modell ausgeführt werden müssen. |
vehicles[] |
Satz von Fahrzeugen, die für Besuche verwendet werden können. |
objectives[] |
Die Zielvorhaben für dieses Modell, die in Kosten umgewandelt werden. Wenn das Eingabemodell nicht leer ist, muss es kostenlos sein. Verwenden Sie Experimentell: Weitere Informationen finden Sie unter https://developers.google.com/maps/tt/route-optimization/experimental/objectives/make-request. |
globalStartTime |
Globale Start- und Endzeit des Modells: Zeiten außerhalb dieses Bereichs werden nicht berücksichtigt. Die Zeitspanne des Modells muss weniger als ein Jahr betragen, d. h., die Wenn Sie Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: |
globalEndTime |
Wenn nicht festgelegt, wird 00:00:00 UTC, 1. Januar 1971 (d. h. Sekunden: 31536000, Nanosekunden: 0) als Standard verwendet. Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: |
globalDurationCostPerHour |
Die „globale Dauer“ des Gesamtplans ist die Differenz zwischen der frühesten effektiven Startzeit und der spätesten effektiven Endzeit aller Fahrzeuge. Nutzer können dieser Menge Kosten pro Stunde zuweisen, um beispielsweise die frühestmögliche Fertigstellung des Jobs zu optimieren. Diese Kosten müssen in derselben Einheit wie |
durationDistanceMatrices[] |
Gibt die im Modell verwendeten Dauer- und Distanzmatrizen an. Wenn dieses Feld leer ist, werden stattdessen Google Maps- oder geodätische Entfernungen verwendet, je nach Wert des Felds Typische Syntax:
|
durationDistanceMatrixSrcTags[] |
Tags, die die Quellen der Dauer- und Distanzmatrizen definieren; Tags entsprechen |
durationDistanceMatrixDstTags[] |
Tags, die die Ziele der Dauer- und Distanzmatrizen definieren; Tags entsprechen |
transitionAttributes[] |
Dem Modell wurden Übergangsattribute hinzugefügt. |
shipmentTypeIncompatibilities[] |
Sätze inkompatibler shipment_types (siehe |
shipmentTypeRequirements[] |
Sätze von |
precedenceRules[] |
Satz von Rangfolgeregeln, die im Modell erzwungen werden müssen. WICHTIG: Die Verwendung von Rangfolgeregeln schränkt die Größe des Problems ein, das optimiert werden kann. Anfragen mit Rangfolgeregeln, die viele Sendungen enthalten, werden möglicherweise abgelehnt. |
maxActiveVehicles |
Begrenzt die maximale Anzahl aktiver Fahrzeuge. Ein Fahrzeug ist aktiv, wenn auf seiner Route mindestens eine Sendung ausgeführt wird. Damit 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 von Fahrzeugen ausgewählt. Muss strikt positiv sein. |
Versand
Der Versand eines einzelnen Artikels von einer der Abholungen bis zu einer der Lieferungen. Damit eine Sendung als ausgeführt gilt, muss ein eindeutiges Fahrzeug einen ihrer Abholorte besuchen (und seine freien Kapazitäten entsprechend verringern) und später einen ihrer Lieferorte besuchen (und seine freien Kapazitäten entsprechend wieder erhöhen).
| JSON-Darstellung |
|---|
{ "displayName": string, "pickups": [ { object ( |
| Felder | |
|---|---|
displayName |
Der benutzerdefinierte Anzeigename der Sendung. Er kann bis zu 63 Zeichen lang sein und UTF-8-Zeichen enthalten. |
pickups[] |
Satz von Abholalternativen, die mit der Sendung verknüpft sind. Wenn nicht angegeben, muss das Fahrzeug nur einen Standort besuchen, der den Lieferungen entspricht. |
deliveries[] |
Satz von Lieferalternativen, die mit der Sendung verknüpft sind. Wenn nicht angegeben, muss das Fahrzeug nur einen Ort besuchen, der den Abholungen entspricht. |
loadDemands |
Ladeanforderungen der Sendung (z. B. Gewicht, Volumen, Anzahl der Paletten usw.) Die Schlüssel in der Zuordnung sollten IDs sein, die den Typ der entsprechenden Last 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 Last als null betrachtet. |
allowedVehicleIndices[] |
Die Fahrzeuge, die diese Sendung ausführen können. Wenn das Feld leer ist, können alle Fahrzeuge die Fahrt ausführen. Fahrzeuge werden durch ihren Index in der Liste |
costsPerVehicle[] |
Gibt die Kosten an, die anfallen, wenn diese Sendung von jedem Fahrzeug zugestellt wird. Wenn angegeben, muss ENTWEDER:
Diese Kosten müssen in derselben Einheit wie |
costsPerVehicleIndices[] |
Indizes der Fahrzeuge, für die |
pickupToDeliveryAbsoluteDetourLimit |
Gibt die maximale absolute Umwegzeit im Vergleich zur kürzesten Route von der Abholung bis zur Lieferung an. Wenn angegeben, muss der Wert nicht negativ sein und die Sendung muss mindestens eine Abholung und eine Lieferung enthalten. Beispiel: t ist die kürzeste Zeit, die benötigt wird, um von der ausgewählten Abholalternative direkt zur ausgewählten Lieferalternative zu gelangen. Wenn Sie Wenn für dieselbe Sendung sowohl relative als auch absolute Limits angegeben sind, wird für jedes mögliche Abhol-/Lieferpaar das restriktivere Limit verwendet. Seit Oktober 2017 werden Umwege nur unterstützt, wenn die Reisedauer nicht von Fahrzeugen abhängt. |
pickupToDeliveryTimeLimit |
Gibt die maximale Dauer vom Beginn der Abholung bis zum Beginn der Lieferung einer Sendung an. Wenn angegeben, muss der Wert nicht negativ sein und die Sendung muss mindestens eine Abholung und eine Lieferung enthalten. Dies hängt weder von den ausgewählten Alternativen für Abholung und Lieferung noch von der Fahrzeuggeschwindigkeit ab. Dies kann zusammen mit Einschränkungen für den maximalen Umweg angegeben werden. Die Lösung berücksichtigt beide Angaben. |
shipmentType |
Nicht leere Zeichenfolge, die einen „Typ“ für diese Sendung angibt. Mit dieser Funktion können Inkompatibilitäten oder Anforderungen zwischen Unterscheidet sich von |
label |
Gibt ein Label für diese Sendung an. Dieses Label wird in der Antwort im |
ignore |
Wenn „true“, wird diese Sendung übersprungen, aber es wird kein Wenn Sie eine Sendung ignorieren, führt das zu einem Validierungsfehler, wenn im Modell Das Ignorieren einer Sendung, die in |
penaltyCost |
Wenn die Sendung nicht abgeschlossen wird, wird diese Strafe zu den Gesamtkosten der Routen addiert. Eine Sendung gilt als abgeschlossen, wenn eine der Abhol- und Lieferalternativen besucht wurde. Die Kosten können in derselben Einheit angegeben werden, die für alle anderen kostenbezogenen Felder im Modell verwendet wird, und müssen positiv sein. WICHTIG: Wenn diese Strafe nicht angegeben ist, wird sie als unendlich betrachtet, d.h., die Sendung muss abgeschlossen werden. |
pickupToDeliveryRelativeDetourLimit |
Gibt die maximale relative Umwegzeit im Vergleich zur kürzesten Route von der Abholung bis zur Lieferung an. Wenn angegeben, muss der Wert nicht negativ sein und die Sendung muss mindestens eine Abholung und eine Lieferung enthalten. Beispiel: t ist die kürzeste Zeit, die benötigt wird, um von der ausgewählten Abholalternative direkt zur ausgewählten Lieferalternative zu gelangen. Wenn Sie Wenn für dieselbe Sendung sowohl relative als auch absolute Limits angegeben sind, wird für jedes mögliche Abhol-/Lieferpaar das restriktivere Limit verwendet. Seit Oktober 2017 werden Umwege nur unterstützt, wenn die Reisedauer nicht von Fahrzeugen abhängt. |
VisitRequest
Anfrage für einen Besuch, der von einem Fahrzeug ausgeführt werden kann: Er hat einen Standort (oder zwei, siehe unten), Öffnungs- und Schließzeiten, die durch Zeitfenster dargestellt werden, und eine Servicedauer (Zeit, die das Fahrzeug nach der Ankunft für die Abholung oder Lieferung von Waren benötigt).
| JSON-Darstellung |
|---|
{ "arrivalLocation": { object ( |
| Felder | |
|---|---|
arrivalLocation |
Der geografische Standort, an dem das Fahrzeug bei der Ausführung dieses |
arrivalWaypoint |
Der Wegpunkt, an dem das Fahrzeug bei der Ausführung dieses |
departureLocation |
Der geografische Standort, von dem das Fahrzeug nach Abschluss dieses |
departureWaypoint |
Der Wegpunkt, von dem das Fahrzeug nach Abschluss dieses |
tags[] |
Gibt Tags an, die an die Besuchs-Anfrage angehängt sind. Leere oder doppelte Strings sind nicht zulässig. |
timeWindows[] |
Zeitfenster, die die Ankunftszeit bei einem Besuch einschränken. Beachten Sie, dass ein Fahrzeug außerhalb des Ankunftszeitfensters abfahren kann, d.h. Ankunftszeit + Dauer müssen nicht innerhalb eines Zeitfensters liegen. Dies kann zu Wartezeiten führen, wenn das Fahrzeug vor Wenn Zeitfenster dürfen sich nicht überschneiden, d.h. kein Zeitfenster darf sich mit einem anderen überschneiden oder an ein anderes angrenzen, und sie müssen in aufsteigender Reihenfolge angegeben werden.
|
duration |
Dauer des Besuchs, d.h. die Zeit, die das Fahrzeug zwischen Ankunft und Abfahrt verbringt (muss zur möglichen Wartezeit addiert werden; siehe |
cost |
Kosten für die Erfüllung dieser Besuchsanfrage auf einer Fahrzeugroute. Damit können Sie unterschiedliche Kosten für jede alternative Abholung oder Lieferung einer Sendung bezahlen. Diese Kosten müssen in derselben Einheit wie |
loadDemands |
Ladeanforderungen dieser Besuchsanfrage. Dieses Feld entspricht dem Feld |
visitTypes[] |
Gibt die Typen des Besuchs an. Damit kann zusätzliche Zeit zugewiesen werden, die ein Fahrzeug für diesen Besuch benötigt (siehe Ein Typ kann nur einmal vorkommen. |
label |
Gibt ein Label für diese |
avoidUTurns |
Gibt an, ob Wendemanöver auf Fahrstrecken an diesem Ort vermieden werden sollen. Die Vermeidung von Wendemanövern erfolgt nach bestem Wissen und Gewissen. Eine vollständige Vermeidung kann jedoch nicht garantiert werden. Dies ist eine experimentelle Funktion und das Verhalten kann sich ändern. Experimentell: Weitere Informationen finden Sie unter https://developers.google.com/maps/tt/route-optimization/experimental/u-turn-avoidance/make-request. |
LatLng
Ein Objekt, das ein Paar aus Breiten- und Längengrad darstellt. Es wird als Paar aus Werten vom Typ „Double“ (Breiten- und Längengrad) ausgedrückt. Sofern nicht anders angegeben, muss es dem World Geodetic System 1984 (WGS 84) entsprechen. Die Werte müssen innerhalb normalisierter Bereiche liegen.
| JSON-Darstellung |
|---|
{ "latitude": number, "longitude": number } |
| Felder | |
|---|---|
latitude |
Der Breitengrad in Grad. Er muss im Bereich [-90,0, +90,0] liegen. |
longitude |
Der Längengrad in Grad. Er muss im Bereich [-180,0, +180,0] liegen. |
Zwischenstopp
Kapselt einen Wegpunkt. Wegpunkte markieren die Ankunfts- und Abfahrtsorte von VisitRequests sowie die Start- und Zielorte von Fahrzeugen.
| JSON-Darstellung |
|---|
{
"sideOfRoad": boolean,
"vehicleStopover": boolean,
// The following is a list of mutually exclusive fields. At most one of the
// fields will be set in a response:
"location": {
object ( |
| Felder | |
|---|---|
sideOfRoad |
Optional. Gibt an, dass der Standort dieses Wegpunkts eine Präferenz für das Fahrzeug darstellt, auf einer bestimmten Straßenseite anzuhalten. Wenn Sie diesen Wert festlegen, führt die Route durch den Ort, sodass das Fahrzeug auf der Straßenseite anhalten kann, die vom Mittelpunkt der Straße aus gesehen in Richtung des Ortes liegt. Diese Option funktioniert nicht für die Mobilitätsform „WALKING“. |
vehicleStopover |
Gibt an, dass der Wegpunkt für Fahrzeuge gedacht ist, die dort anhalten, um entweder jemanden abzuholen oder abzusetzen. Diese Option funktioniert nur für den Reisemodus „DRIVING“ und wenn „locationType“ auf „location“ gesetzt ist. Experimentell: Das Verhalten oder die Existenz dieses Felds kann sich in Zukunft ändern. |
| Verschiedene Möglichkeiten, einen Standort darzustellen. Im Folgenden finden Sie eine Liste von Feldern, die sich gegenseitig ausschließen. In einer Antwort wird höchstens eines der Felder festgelegt: | |
location |
Ein Punkt, der mithilfe von geografischen Koordinaten angegeben wird, einschließlich einer optionalen Überschrift. |
placeId |
Die Orts-ID des POI, der mit dem Wegpunkt verknüpft ist. Wenn Sie eine Orts-ID verwenden, um den Ankunfts- oder Abfahrtsort einer VisitRequest anzugeben, muss die Orts-ID spezifisch genug sein, um einen LatLng-Standort für die Navigation zum Ort zu bestimmen. Eine Orts-ID, die ein Gebäude darstellt, ist beispielsweise geeignet, eine Orts-ID, die eine Straße darstellt, jedoch nicht. |
| Ende der sich gegenseitig ausschließenden Felder. | |
Standort
Kapselt einen Standort (einen geografischen Punkt und eine optionale Richtung).
| JSON-Darstellung |
|---|
{
"latLng": {
object ( |
| Felder | |
|---|---|
latLng |
Die geografischen Koordinaten des Wegpunkts. |
heading |
Der Kompasskurs, der der Richtung des Verkehrsflusses zugeordnet ist. Mit diesem Wert wird die Straßenseite für die Abholung und den Ausstieg angegeben. Die Werte für die Fahrtrichtung können zwischen 0 und 360 liegen, wobei 0 für Norden, 90 für Osten usw. steht. |
TimeWindow
Zeitfenster schränken die Zeit eines Ereignisses ein, z. B. die Ankunftszeit bei einem Besuch oder die Start- und Endzeit eines Fahrzeugs.
Die harten Zeitfenstergrenzen startTime und endTime erzwingen den frühesten und spätesten Zeitpunkt des Ereignisses, sodass startTime <= event_time <=
endTime gilt. Die Untergrenze des weichen Zeitfensters, softStartTime, drückt eine Präferenz dafür aus, dass das Ereignis um oder nach softStartTime stattfindet. Dabei fallen Kosten an, die proportional dazu sind, wie lange vor softStartTime das Ereignis stattfindet. Die Obergrenze des weichen Zeitfensters, softEndTime, drückt eine Präferenz dafür aus, dass das Ereignis am oder vor dem softEndTime stattfindet. Dabei fallen Kosten an, die proportional dazu sind, wie lange nach dem softEndTime das Ereignis eintritt. startTime, endTime, softStartTime und softEndTime sollten innerhalb der globalen Zeitlimits liegen (siehe ShipmentModel.global_start_time und ShipmentModel.global_end_time) und Folgendes berücksichtigen:
0 <= `startTime` <= `endTime` and
0 <= `startTime` <= `softStartTime` and
0 <= `softEndTime` <= `endTime`.
| JSON-Darstellung |
|---|
{ "startTime": string, "endTime": string, "softStartTime": string, "softEndTime": string, "costPerHourBeforeSoftStartTime": number, "costPerHourAfterSoftEndTime": number } |
| Felder | |
|---|---|
startTime |
Der Beginn des harten Zeitfensters. Wenn nicht angegeben, wird Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: |
endTime |
Das Ende des harten Zeitfensters. Wenn nicht angegeben, wird Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: |
softStartTime |
Der weiche Beginn des Zeitfensters. Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: |
softEndTime |
Das weiche Ende des Zeitfensters. Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: |
costPerHourBeforeSoftStartTime |
Kosten pro Stunde, die zu anderen Kosten im Modell hinzugefügt werden, wenn das Ereignis vor „softStartTime“ auftritt. Berechnung: Diese Kosten müssen positiv sein und das Feld kann nur festgelegt werden, wenn „softStartTime“ festgelegt wurde. |
costPerHourAfterSoftEndTime |
Kosten pro Stunde, die zu anderen Kosten im Modell hinzugefügt werden, wenn das Ereignis nach Diese Kosten müssen positiv sein und das Feld kann nur festgelegt werden, wenn |
Fahrzeug
Modelliert ein Fahrzeug in einem Lieferproblem. Wenn Sie ein Lieferproblem lösen, wird für dieses Fahrzeug eine Route erstellt, die bei startLocation beginnt und bei endLocation endet. Eine Route ist eine Abfolge von Besuchen (siehe ShipmentRoute).
| JSON-Darstellung |
|---|
{ "displayName": string, "travelMode": enum ( |
| Felder | |
|---|---|
displayName |
Der benutzerdefinierte Anzeigename des Fahrzeugs. Er kann bis zu 63 Zeichen lang sein und UTF-8-Zeichen enthalten. |
travelMode |
Der Reisemodus, der sich auf die vom Fahrzeug befahrbaren Straßen und seine Geschwindigkeit auswirkt. Siehe auch |
routeModifiers |
Eine Reihe von Bedingungen, die erfüllt sein müssen und die sich auf die Berechnung der Routen für das jeweilige Fahrzeug auswirken. |
startLocation |
Geografischer Standort, an dem das Fahrzeug startet, bevor es Sendungen abholt. Wenn nicht angegeben, startet das Fahrzeug bei der ersten Abholung. Wenn das Sendungsmodell Dauer- und Distanzmatrizen enthält, darf |
startWaypoint |
Wegpunkt, der einen geografischen Standort darstellt, an dem das Fahrzeug startet, bevor es Sendungen abholt. Wenn weder |
endLocation |
Geografischer Standort, an dem sich das Fahrzeug nach Abschluss der letzten |
endWaypoint |
Wegpunkt, der einen geografischen Standort darstellt, an dem das Fahrzeug nach Abschluss der letzten |
startTags[] |
Gibt Tags an, die am Anfang der Route des Fahrzeugs angehängt sind. Leere oder doppelte Strings sind nicht zulässig. |
endTags[] |
Gibt Tags an, die am Ende der Route des Fahrzeugs angehängt werden. Leere oder doppelte Strings sind nicht zulässig. |
startTimeWindows[] |
Zeitfenster, in denen das Fahrzeug seinen Startort verlassen darf. Sie müssen innerhalb der globalen Zeitlimits liegen (siehe Zeitfenster, die zum selben wiederkehrenden Feld gehören, dürfen sich nicht überschneiden, d. h. kein Zeitfenster darf sich mit einem anderen überschneiden oder an ein anderes angrenzen. Außerdem müssen sie in chronologischer Reihenfolge angegeben werden.
|
endTimeWindows[] |
Zeitfenster, in denen das Fahrzeug am Zielort ankommen darf. Sie müssen innerhalb der globalen Zeitlimits liegen (siehe Zeitfenster, die zum selben wiederkehrenden Feld gehören, dürfen sich nicht überschneiden, d. h. kein Zeitfenster darf sich mit einem anderen überschneiden oder an ein anderes angrenzen. Außerdem müssen sie in chronologischer Reihenfolge angegeben werden.
|
unloadingPolicy |
Richtlinie zum Entladen wird für das Fahrzeug erzwungen. |
loadLimits |
Kapazitäten des Fahrzeugs (z. B. Gewicht, Volumen, Anzahl der Paletten). Die Schlüssel in der Zuordnung sind die Kennungen des Lasttyps und entsprechen den Schlüsseln des Felds |
costPerHour |
Fahrzeugkosten: Alle Kosten werden addiert und müssen in derselben Einheit wie Kosten pro Stunde der Fahrzeugroute. Diese Kosten werden auf die Gesamtzeit der Route angewendet, einschließlich Fahrtzeit, Wartezeit und Besuchszeit. Die Verwendung von |
costPerTraveledHour |
Kosten pro gefahrener Stunde der Fahrzeugroute. Diese Kosten werden nur auf die Reisedauer der Route angewendet (d. h. die in |
costPerKilometer |
Kosten pro Kilometer der Fahrzeugroute. Diese Kosten werden auf die in der |
fixedCost |
Fixkosten, die anfallen, wenn dieses Fahrzeug für eine Sendung verwendet wird. |
usedIfRouteIsEmpty |
Dieses Feld gilt nur für Fahrzeuge, deren Route keine Sendungen umfasst. Gibt an, ob das Fahrzeug in diesem Fall als gebraucht gilt. Wenn „true“, fährt das Fahrzeug von seinem Start- zu seinem Zielort, auch wenn es keine Sendungen ausliefert. Die Zeit- und Entfernungskosten, die sich aus der Fahrt vom Start- zum Zielort ergeben, werden berücksichtigt. Andernfalls fährt es nicht vom Start- zum Zielort und für dieses Fahrzeug sind keine |
routeDurationLimit |
Limit für die Gesamtdauer der Route des Fahrzeugs. In einem bestimmten |
travelDurationLimit |
Limit für die Fahrtdauer der Fahrzeugroute. In einer bestimmten |
routeDistanceLimit |
Limit für die Gesamtstrecke der Route des Fahrzeugs. In einem bestimmten |
extraVisitDurationForVisitType |
Gibt eine Zuordnung von visitTypes-Strings zu Dauern an. Die Dauer ist die Zeit, die zusätzlich zu Wenn eine Besuchsanfrage mehrere Typen hat, wird für jeden Typ in der Karte eine Dauer hinzugefügt. |
breakRule |
Beschreibt den Pausenplan, der für dieses Fahrzeug erzwungen werden 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“, muss Wenn eine Sendung von einem ignorierten Fahrzeug in Wenn eine Sendung von einem ignorierten Fahrzeug in |
travelDurationMultiple |
Gibt einen Multiplikationsfaktor an, mit dem die Fahrzeiten dieses Fahrzeugs erhöht oder verringert werden können. Wenn Sie diesen Wert beispielsweise auf 2,0 setzen, bedeutet das, dass dieses Fahrzeug langsamer ist und die Fahrtzeiten doppelt so lang sind wie bei Standardfahrzeugen. Dieses Vielfache hat keine Auswirkungen auf die Besuchsdauer. Es wirkt sich auf die Kosten aus, wenn WARNUNG: Die Reisedauer wird auf die nächste Sekunde gerundet, nachdem dieses Vielfache angewendet wurde, aber bevor numerische Vorgänge ausgeführt werden. Ein kleines Vielfaches kann daher zu einem Verlust an Genauigkeit führen. Siehe auch |
TravelMode
Mobilitätsformen, die von Fahrzeugen verwendet werden können.
Diese sollten eine Teilmenge der Fortbewegungsarten der Routes API der Google Maps Platform sein. Weitere Informationen finden Sie unter https://developers.google.com/maps/documentation/routes/reference/rest/v2/RouteTravelMode.
Hinweis: WALKING-Routen befinden sich in der Betaphase. Es kann vorkommen, dass Gehwege oder Fußgängerwege fehlen. Sie müssen diese Warnung für alle Fußgängerrouten anzeigen, die Sie in Ihrer App einblenden.
| Enums | |
|---|---|
TRAVEL_MODE_UNSPECIFIED |
Nicht angegebene Mobilitätsform, entspricht DRIVING. |
DRIVING |
Mobilitätsform für die Wegbeschreibung (Auto, …). |
WALKING |
Mobilitätsform für Fußgängerrouten. |
TWO_WHEELER |
Zweirädriges, motorisiertes Fahrzeug. Beispiel: Motorrad. Dieser unterscheidet sich vom Fortbewegungsmodus BICYCLING, der den muskelbetriebenen Modus abdeckt. Diese Mobilitätsform wird nur in den Ländern unterstützt, die unter Länder und Regionen, die bei Zweirädern möglich sind aufgeführt sind. |
RouteModifiers
Kapselt eine Reihe optionaler Bedingungen, die bei der Berechnung von Fahrzeugrouten erfüllt werden müssen. Dies ähnelt RouteModifiers in der Routes Preferred API der Google Maps Platform. Weitere Informationen finden Sie unter https://developers.google.com/maps/documentation/routes/reference/rest/v2/RouteModifiers.
| JSON-Darstellung |
|---|
{ "avoidTolls": boolean, "avoidHighways": boolean, "avoidFerries": boolean, "avoidIndoor": boolean } |
| Felder | |
|---|---|
avoidTolls |
Gibt an, ob Mautstraßen nach Möglichkeit vermieden werden sollen. Routen ohne Mautstraßen werden bevorzugt. Gilt nur für motorisierte Verkehrsmittel. |
avoidHighways |
Gibt an, ob Autobahnen nach Möglichkeit vermieden werden sollen. Routen ohne Autobahnen werden bevorzugt. Gilt nur für motorisierte Verkehrsmittel. |
avoidFerries |
Gibt an, ob Fähren nach Möglichkeit vermieden werden sollen. Routen ohne Fähren werden bevorzugt. Gilt nur für motorisierte Verkehrsmittel. |
avoidIndoor |
Optional. Gibt an, ob die Navigation in Innenräumen nach Möglichkeit vermieden werden soll. Routen ohne Indoor-Navigation werden bevorzugt. Gilt nur für die Mobilitätsform |
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 unloadingPolicy an einer beliebigen Stelle auf der Route erfolgen.
| Enums | |
|---|---|
UNLOADING_POLICY_UNSPECIFIED |
Nicht angegebene Entladerichtlinie; Lieferungen müssen nur nach den entsprechenden Abholungen erfolgen. |
LAST_IN_FIRST_OUT |
Die Lieferungen müssen in umgekehrter Reihenfolge der Abholungen erfolgen. |
FIRST_IN_FIRST_OUT |
Lieferungen müssen in derselben Reihenfolge wie Abholungen erfolgen |
LoadLimit
Definiert ein für ein Fahrzeug geltendes Lastlimit, z. B. „Dieser Lkw darf nur bis zu 3.500 kg transportieren“. loadLimits ansehen.
| JSON-Darstellung |
|---|
{ "softMaxLoad": string, "costPerUnitAboveSoftMax": number, "startLoadInterval": { object ( |
| Felder | |
|---|---|
softMaxLoad |
Ein flexibler Grenzwert für die Last. |
costPerUnitAboveSoftMax |
Wenn die Last auf der Route dieses Fahrzeugs jemals |
startLoadInterval |
Das zulässige Lastintervall des Fahrzeugs zu Beginn der Route. |
endLoadInterval |
Das zulässige Lastintervall des Fahrzeugs am Ende der Route. |
maxLoad |
Die maximal zulässige Last. |
costPerKilometer |
Kosten für den Transport einer Ladeeinheit über einen Kilometer für dieses Fahrzeug. Dies kann als Proxy für den Kraftstoffverbrauch verwendet werden: Wenn die Last ein Gewicht (in Newton) ist, hat „Last × Kilometer“ die Dimension einer Energie. Experimentell: Weitere Informationen finden Sie unter https://developers.google.com/maps/tt/route-optimization/experimental/load-cost/make-request. |
costPerTraveledHour |
Kosten für die einstündige Fahrt mit einer Ladeeinheit für dieses Fahrzeug. Experimentell: Weitere Informationen finden Sie unter https://developers.google.com/maps/tt/route-optimization/experimental/load-cost/make-request. |
Intervall
Intervall akzeptabler Lastmengen.
| JSON-Darstellung |
|---|
{ "min": string, "max": string } |
| Felder | |
|---|---|
min |
Eine akzeptable Mindestlast. Muss ≥ 0 sein. Wenn beide angegeben sind, muss |
max |
Eine maximal akzeptable Last. Muss ≥ 0 sein. Wenn keine Angabe gemacht wird, ist die maximale Last durch diese Nachricht nicht eingeschränkt. Wenn beide angegeben sind, muss |
LoadCost
Kosten für das Verschieben einer Lasteinheit während eines Transition. Für eine bestimmte Last setzen sich die Kosten aus zwei Teilen zusammen:
- min(load,
loadThreshold) *costPerUnitBelowThreshold - max(0, load -
loadThreshold) *costPerUnitAboveThreshold
Bei diesen Kosten werden Lösungen bevorzugt, bei denen hohe Anforderungen zuerst erfüllt oder hohe Anforderungen zuletzt abgeholt werden. Wenn ein Fahrzeug beispielsweise
load_limit {
key: "weight"
value {
costPerKilometer {
loadThreshold: 15
costPerUnitBelowThreshold: 2.0
costPerUnitAboveThreshold: 10.0
}
}
}
und die Route ist „start,pickup,pickup,delivery,delivery,end“ mit den Übergängen:
transition { vehicle_load['weight'] { amount: 0 }
travelDistanceMeters: 1000.0 }
transition { vehicle_load['weight'] { amount: 10 }
travelDistanceMeters: 1000.0 }
transition { vehicle_load['weight'] { amount: 20 }
travelDistanceMeters: 1000.0 }
transition { vehicle_load['weight'] { amount: 10 }
travelDistanceMeters: 1000.0 }
transition { vehicle_load['weight'] { amount: 0 }
travelDistanceMeters: 1000.0 }
dann betragen die Kosten für diese LoadCost (cost_below * load_below * Kilometer + cost_above * load_above * Kilometer).
- Übergang 0: 0,0
- Übergang 1: 2,0 × 10 × 1,0 + 10,0 × 0 × 1,0 = 20,0
- Übergang 2: 2,0 × 15 × 1,0 + 10,0 × (20 − 15) × 1,0 = 80,0
- Übergang 3: 2,0 × 10 × 1,0 + 10,0 × 0 × 1,0 = 20,0
- Übergang 4: 0,0
Der LoadCost-Wert für die Route beträgt also 120,0.
Wenn die Route jedoch „Start, Abholung, Lieferung, Abholung, Lieferung, Ende“ mit Übergängen ist:
transition { vehicle_load['weight'] { amount: 0 }
travelDistanceMeters: 1000.0 }
transition { vehicle_load['weight'] { amount: 10 }
travelDistanceMeters: 1000.0 }
transition { vehicle_load['weight'] { amount: 0 }
travelDistanceMeters: 1000.0 }
transition { vehicle_load['weight'] { amount: 10 }
travelDistanceMeters: 1000.0 }
transition { vehicle_load['weight'] { amount: 0 }
travelDistanceMeters: 1000.0 }
dann betragen die durch diesen LoadCost verursachten Kosten
- Übergang 0: 0,0
- Übergang 1: 2,0 × 10 × 1,0 + 10,0 × 0 × 1,0 = 20,0
- Übergang 2: 0,0
- Übergang 3: 2,0 × 10 × 1,0 + 10,0 × 0 × 1,0 = 20,0
- Übergang 4: 0,0
Hier beträgt der LoadCost über die Route 40,0.
LoadCost macht Lösungen mit stark ausgelasteten Übergängen teurer.
Experimentell: Weitere Informationen finden Sie unter https://developers.google.com/maps/tt/route-optimization/experimental/load-cost/make-request.
| JSON-Darstellung |
|---|
{ "loadThreshold": string, "costPerUnitBelowThreshold": number, "costPerUnitAboveThreshold": number } |
| Felder | |
|---|---|
loadThreshold |
Lastmenge, ab der sich die Kosten für das Bewegen einer Lasteinheit von „costPerUnitBelowThreshold“ zu „costPerUnitAboveThreshold“ ändern. Muss >= 0 sein. |
costPerUnitBelowThreshold |
Kosten für das Verschieben einer Lasteinheit für jede Einheit zwischen 0 und dem Schwellenwert. Muss ein endlicher Wert und >= 0 sein. |
costPerUnitAboveThreshold |
Kosten für das Verschieben einer Lasteinheit für jede Einheit über dem Schwellenwert. Im Sonderfall „Grenzwert = 0“ sind dies feste Kosten pro Einheit. Muss ein endlicher Wert und >= 0 sein. |
DurationLimit
Ein Limit, das die maximale Dauer der Route eines Fahrzeugs definiert. Sie kann entweder hart oder weich sein.
Wenn ein Feld für ein weiches Limit definiert ist, müssen sowohl der Schwellenwert für das weiche Limit als auch die zugehörigen Kosten definiert werden.
| JSON-Darstellung |
|---|
{ "maxDuration": string, "softMaxDuration": string, "quadraticSoftMaxDuration": string, "costPerHourAfterSoftMax": number, "costPerSquareHourAfterQuadraticSoftMax": number } |
| Felder | |
|---|---|
maxDuration |
Ein festes Limit, das die Dauer auf maximal „maxDuration“ beschränkt. |
softMaxDuration |
Ein weiches Limit, das keine maximale Dauer erzwingt, aber bei Überschreitung Kosten für die Route verursacht. Diese Kosten werden zu anderen im Modell definierten Kosten mit derselben Einheit addiert. Falls definiert, darf |
quadraticSoftMaxDuration |
Ein weiches Limit, das keine maximale Dauer erzwingt, aber bei Überschreitung zu Kosten führt, die quadratisch zur Dauer sind. Diese Kosten werden zu anderen im Modell definierten Kosten mit derselben Einheit addiert. Wenn
|
costPerHourAfterSoftMax |
Kosten pro Stunde, die anfallen, wenn der Schwellenwert für Die Kosten dürfen nicht negativ sein. |
costPerSquareHourAfterQuadraticSoftMax |
Kosten pro Quadratstunde, die anfallen, wenn der Schwellenwert Die zusätzlichen Kosten betragen 0, wenn die Dauer unter dem Schwellenwert liegt. Andernfalls hängen die Kosten wie folgt von der Dauer ab: Die Kosten dürfen nicht negativ sein. |
DistanceLimit
Ein Limit, das die maximale Entfernung definiert, die zurückgelegt werden kann. Sie kann entweder hart oder weich sein.
Wenn ein weiches Limit definiert ist, müssen sowohl softMaxMeters als auch costPerKilometerAboveSoftMax definiert und nicht negativ sein.
| JSON-Darstellung |
|---|
{ "maxMeters": string, "softMaxMeters": string, "costPerKilometerBelowSoftMax": number, "costPerKilometerAboveSoftMax": number } |
| Felder | |
|---|---|
maxMeters |
Ein festes Limit, das die Entfernung auf maximal maxMeters beschränkt. Das Limit darf kein negativer Wert sein. |
softMaxMeters |
Ein weiches Limit, das keine maximale Entfernung erzwingt, aber bei Überschreitung zu Kosten führt, die zu anderen im Modell definierten Kosten mit derselben Einheit addiert werden. Wenn „softMaxMeters“ definiert ist, muss der Wert kleiner als „maxMeters“ und nicht negativ sein. |
costPerKilometerBelowSoftMax |
Anfallende Kosten pro Kilometer, bis zu Diese Kosten werden in |
costPerKilometerAboveSoftMax |
Kosten pro Kilometer, die anfallen, wenn die Entfernung über dem Limit von Die Kosten dürfen nicht negativ sein. |
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 ausführen kann. Eine Pause kann auftreten:
- während der Fahrt zwischen zwei Besuchen (einschließlich der Zeit unmittelbar vor oder nach einem Besuch, aber nicht während eines Besuchs). In diesem Fall wird die entsprechende Fahrzeit zwischen den Besuchen verlängert.
- oder vor dem Start des Fahrzeugs (das Fahrzeug darf nicht mitten in einer Pause starten). In diesem Fall hat die Pause keine Auswirkungen auf die Startzeit des Fahrzeugs.
- oder nach dem Ende der Fahrt (ditto, mit der Endzeit der Fahrt).
| JSON-Darstellung |
|---|
{ "breakRequests": [ { object ( |
| Felder | |
|---|---|
breakRequests[] |
Reihenfolge der Pausen. Suchen Sie nach der Nachricht |
frequencyConstraints[] |
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 BreakRequests definieren diese Sequenz in der Reihenfolge, in der sie auftreten müssen. Ihre Zeitfenster (earliestStartTime / latestStartTime) können sich überschneiden, müssen aber mit der Bestellung kompatibel sein (dies wird geprüft).
| JSON-Darstellung |
|---|
{ "earliestStartTime": string, "latestStartTime": string, "minDuration": string } |
| Felder | |
|---|---|
earliestStartTime |
Erforderlich. Untergrenze (einschließlich) für den Beginn der Pause. Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: |
latestStartTime |
Erforderlich. Obergrenze (einschließlich) für den Beginn der Pause. Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: |
minDuration |
Erforderlich. Mindestdauer der Unterbrechung. Muss positiv sein. |
FrequencyConstraint
Sie können die Häufigkeit und Dauer der oben angegebenen Pausen weiter einschränken, indem Sie eine Mindesthäufigkeit für Pausen erzwingen, z. B. „Alle 12 Stunden muss eine Pause von mindestens 1 Stunde eingelegt werden“. Angenommen, dies kann als „Innerhalb eines beliebigen 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 werden:
{
minBreakDuration { seconds: 3600 } # 1 hour.
maxInterBreakDuration { seconds: 39600 } # 11 hours (12 - 1 = 11).
}
Der Zeitpunkt und die Dauer der Pausen in der Lösung berücksichtigen alle diese Einschränkungen sowie die bereits in der BreakRequest angegebenen Zeitfenster und Mindestdauern.
Eine FrequencyConstraint kann in der Praxis für nicht aufeinanderfolgende Pausen gelten. Der folgende Zeitplan entspricht beispielsweise dem Beispiel „1 Stunde alle 12 Stunden“:
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
| JSON-Darstellung |
|---|
{ "minBreakDuration": string, "maxInterBreakDuration": string } |
| Felder | |
|---|---|
minBreakDuration |
Erforderlich. Minimale Dauer der Werbeunterbrechung für diese Einschränkung. Nicht negativ. Siehe Beschreibung von |
maxInterBreakDuration |
Erforderlich. Maximal zulässige Dauer eines Zeitintervalls auf der Route, das nicht mindestens teilweise eine Pause von |
Ziel
Zielvorhaben ersetzen das Kostenmodell vollständig und sind daher nicht mit bereits vorhandenen Kosten kompatibel. Jedes Ziel ist einer Reihe vordefinierter Kosten zugeordnet, z.B. für Fahrzeuge, Sendungen oder Übergangsattribute.
Experimentell: Weitere Informationen finden Sie unter https://developers.google.com/maps/tt/route-optimization/experimental/objectives/make-request.
| JSON-Darstellung |
|---|
{
"type": enum ( |
| Felder | |
|---|---|
type |
Der Typ des Ziels. |
weight |
Wie stark dieses Ziel im Vergleich zu den anderen gewichtet werden soll. Dies kann eine beliebige nicht negative Zahl sein. Die Summe der Gewichtungen muss nicht 1 ergeben. Die Standardgewichtung ist 1,0. |
Typ
Der Zieltyp, der einer Reihe von Kosten zugeordnet wird.
| Enums | |
|---|---|
DEFAULT |
Es wird ein Standardsatz von Kosten verwendet, um eine angemessene Lösung zu gewährleisten. Hinweis: Dieses Ziel kann allein verwendet werden, wird aber auch immer mit der Gewichtung 1,0 als Baseline zu den vom Nutzer angegebenen Zielen hinzugefügt, falls es noch nicht vorhanden ist. |
MIN_DISTANCE |
„MIN“-Ziele. Minimieren Sie die insgesamt zurückgelegte Strecke. |
MIN_WORKING_TIME |
Minimieren Sie die Gesamtarbeitszeit, summiert über alle Fahrzeuge. |
MIN_TRAVEL_TIME |
Wie oben, aber nur auf die Reisedauer bezogen. |
MIN_NUM_VEHICLES |
Minimieren Sie die Anzahl der verwendeten Fahrzeuge. |
DurationDistanceMatrix
Gibt eine Dauer- und Distanzmatrix von den Startorten der Besuche und Fahrzeuge zu den Zielorten der Besuche und Fahrzeuge an.
| JSON-Darstellung |
|---|
{
"rows": [
{
object ( |
| Felder | |
|---|---|
rows[] |
Gibt die Zeilen der Dauer- und Distanzmatrix an. Es muss so viele Elemente wie |
vehicleStartTag |
Tag, das definiert, für welche Fahrzeuge diese Dauer- und Distanzmatrix 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 ihrer Alle Matrizen müssen eine andere |
Zeile
Gibt eine Zeile der Dauer- und Distanzmatrix an.
| JSON-Darstellung |
|---|
{ "durations": [ string ], "meters": [ number ] } |
| Felder | |
|---|---|
durations[] |
Dauerwerte für eine bestimmte Zeile. Es muss so viele Elemente 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 |
TransitionAttributes
Gibt Attribute für Übergänge 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 es gilt die strengste Einschränkung oder das strengste Limit (gemäß der natürlichen „UND“-Semantik).
| JSON-Darstellung |
|---|
{
"srcTag": string,
"excludedSrcTag": string,
"dstTag": string,
"excludedDstTag": string,
"cost": number,
"costPerKilometer": number,
"distanceLimit": {
object ( |
| Felder | |
|---|---|
srcTag |
Tags, die die Gruppe von (src->dst)-Übergängen definieren, für die diese Attribute gelten. Ein Quellbesuch oder Fahrzeugstart stimmt überein, wenn |
excludedSrcTag |
|
dstTag |
Ein Zielbesuch oder ein Fahrzeugende stimmt genau dann überein, wenn |
excludedDstTag |
|
cost |
Gibt die Kosten für die Durchführung dieser Umstellung an. Dieser Wert wird in derselben Einheit wie alle anderen Kosten im Modell angegeben und darf nicht negativ sein. Sie wird zusätzlich zu allen anderen bestehenden Kosten erhoben. |
costPerKilometer |
Gibt die Kosten pro Kilometer an, die für die während dieses Übergangs zurückgelegte Strecke anfallen. Sie wird zu allen |
distanceLimit |
Gibt ein Limit für die zurückgelegte Strecke während dieses Übergangs an. Seit Juni 2021 werden nur weiche Limits unterstützt. |
delay |
Gibt eine Verzögerung an, die bei der Ausführung dieses Übergangs auftritt. Diese Verzögerung tritt immer nach Abschluss des Besuchs am Quellort und vor Beginn des Besuchs am Zielort auf. |
ShipmentTypeIncompatibility
Gibt Inkompatibilitäten zwischen Sendungen abhängig von ihrem shipmentType an. Das Auftreten inkompatibler Sendungen auf derselben Route wird basierend auf dem Inkompatibilitätsmodus eingeschränkt.
| JSON-Darstellung |
|---|
{
"types": [
string
],
"incompatibilityMode": enum ( |
| Felder | |
|---|---|
types[] |
Liste der inkompatiblen Typen. Zwei Sendungen mit unterschiedlichen |
incompatibilityMode |
Modus, der auf die Inkompatibilität angewendet wird. |
IncompatibilityMode
Modi, die festlegen, wie das Auftreten 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 nie dasselbe Fahrzeug nutzen. |
NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY |
In diesem Modus können zwei Sendungen mit inkompatiblen Typen nie gleichzeitig im selben Fahrzeug sein:
|
ShipmentTypeRequirement
Gibt Anforderungen zwischen Sendungen basierend auf ihrem shipmentType an. Die Einzelheiten der Anforderung werden durch den Anforderungsmodus definiert.
| JSON-Darstellung |
|---|
{
"requiredShipmentTypeAlternatives": [
string
],
"dependentShipmentTypes": [
string
],
"requirementMode": enum ( |
| Felder | |
|---|---|
requiredShipmentTypeAlternatives[] |
Liste der alternativen Versandarten, die für |
dependentShipmentTypes[] |
Für alle Sendungen mit einem Typ im Feld HINWEIS: Ketten von Anforderungen, bei denen ein |
requirementMode |
Modus, der auf die Anforderung angewendet wird. |
RequirementMode
Modi, die das Erscheinungsbild 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 verwenden. |
IN_SAME_VEHICLE_AT_PICKUP_TIME |
Im Modus Eine „abhängige“ Abholung muss daher entweder:
|
IN_SAME_VEHICLE_AT_DELIVERY_TIME |
Wie zuvor, nur dass die „abhängigen“ Sendungen zum Zeitpunkt der Lieferung eine „erforderliche“ Sendung in ihrem Fahrzeug haben müssen. |
PrecedenceRule
Eine Rangfolgeregel zwischen zwei Ereignissen (jedes Ereignis ist die Abholung oder Lieferung einer Sendung): Das „zweite“ Ereignis muss mindestens offsetDuration nach dem „ersten“ Ereignis beginnen.
Mehrere Rangfolgen 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 Prioritäten nur, wenn beide Sendungen ausgeführt werden. Andernfalls werden sie ignoriert.
| JSON-Darstellung |
|---|
{ "firstIsDelivery": boolean, "secondIsDelivery": boolean, "offsetDuration": string, "firstIndex": integer, "secondIndex": integer } |
| Felder | |
|---|---|
firstIsDelivery |
Gibt an, ob das „erste“ Ereignis eine Zustellung ist. |
secondIsDelivery |
Gibt an, ob das „zweite“ Ereignis eine Zustellung ist. |
offsetDuration |
Der Versatz zwischen dem „ersten“ und dem „zweiten“ Ereignis. Er kann negativ sein. |
firstIndex |
Sendungsindex des „ersten“ Ereignisses. Dieses Feld muss angegeben werden. |
secondIndex |
Sendungsindex des „zweiten“ Ereignisses. Dieses Feld muss angegeben werden. |