Mit der Network Analyst-Lizenz verfügbar.
Das Geoverarbeitungswerkzeug Vehicle Routing Problem-Analyse berechnen erzeugt die folgende Tabelle und folgende Feature-Classes als Ausgabe: Stopps, nicht zugewiesene Stopps, Routen, Beschreibungen. Beschreibungen der Ausgabetabellen und -Feature-Classes sowie die ihnen entsprechenden Feldattribute werden in den folgenden Unterabschnitten erläutert.
Routes-Feature-Class
Die Routes-Line-Feature-Class repräsentiert die Treiber, Vehicles und Vehicle Route-Pfade eines Vehicle Routing Problems. Der Standardname dieser Ausgabe-Feature-Class ist "Routen", Sie können ihn jedoch ändern, indem Sie den Parameter Ausgabe-Routenname (output_routes_name in Python) vor der Berechnung ändern.
ArcGIS weist dasselbe Koordinatensystem zu, das auch vom zugrunde liegenden Netzwerk-Dataset für die Routes-Feature-Class verwendet wird. Dies kann durch die Angabe eines Wertes für die Ausgabe-Koordinatensystem-Geoverarbeitungsumgebung gesteuert werden.
Im Folgenden werden die Feldnamen der Routes-Feature-Class aufgeführt und beschrieben.
Feldname | Beschreibung |
---|---|
ObjectID | Das vom System verwaltete ID-Feld. |
Name | Der Name der Route. |
Shape | Das Geometriefeld, das das Shape der Route angibt. Wählen Sie über den Parameter Routenlinien füllen (populate_route_lines in Python), ob dieses Feld gefüllt werden soll. Die Routes-Feature-Class wird immer während der Ausführung von Vehicle Routing Problem berechnen erstellt und mit Daten gefüllt. Der Parameter Routenlinien füllen (populate_route_lines in Python) ermöglicht Ihnen jedoch zu wählen, ob für die Linien-Features Shape-Feldwerte erstellt und gespeichert werden sollen. Indem keine Shape-Feldwerte ausgefüllt werden, wird der Berechnungsvorgang beschleunigt und der Umfang des Server-Client-Datenaustauschs verringert. Häufig wird es jedoch vorgezogen, Routen auf einer Karte darzustellen, wofür das Ausfüllen des Shape-Felds erforderlich wäre. |
ViolatedConstraints | Dieses Feld enthält eine Zusammenfassung von Beschränkungsverletzungen. Es wird nach einem Berechnungsvorgang festgelegt. Wenn eine Route zur Verletzung einer Einschränkung führt, kann dem Feld eine Kombination aus den unten aufgeführten Verletzungen zugewiesen werden:
|
OrderCount | Die Anzahl von Aufträgen, die der Route zugewiesen sind. |
TotalCost | Die gesamten Betriebskosten der Route, wobei es sich um die Summe der folgenden Feldwerte handelt:
|
RegularTimeCost | Die Kosten der regulären Arbeitszeit ohne unbezahlte Pausen. |
OvertimeCost | Die Kosten für Überstunden ohne unbezahlte Pausen. |
DistanceCost | Die Entfernungskosten-Komponente, die durch Multiplizieren der Werte für die Felder TotalDistance und CostPerUnitDistance berechnet wird. Dieser Feldwert wird auf Null gesetzt, wenn vor der Berechnung kein Entfernungsattribut angegeben ist. |
TotalTime | Die Gesamtroutendauer. Diese umfasst Fahrzeiten sowie Durchführungs- und Wartezeiten bei Aufträgen, Depots und Pausen. Der Wert unter TotalTime ist die Summe der folgenden Feldwerte:
Die Einheit für diesen Feldwert wird mithilfe des Parameters Uhrzeitfeldeinheiten (time_units in Python) angegeben. |
TotalOrderServiceTime | Die Gesamtdurchführungszeit für alle Aufträge der Route. Die Einheit für diesen Feldwert wird mithilfe des Parameters Uhrzeitfeldeinheiten (time_units in Python) angegeben. |
TotalBreakServiceTime | Die Gesamtdurchführungszeit für alle Pausenzeiten der Route. Die Einheit für diesen Feldwert wird mithilfe des Parameters Uhrzeitfeldeinheiten (time_units in Python) angegeben. |
TotalTravelTime | Die Gesamtfahrzeit für die Route. Die Einheit für diesen Feldwert wird mithilfe des Parameters Uhrzeitfeldeinheiten (time_units in Python) angegeben. |
TotalDistance | Die Gesamtreisestrecke für die Route. Die Einheit für diesen Feldwert wird durch den Parameter "Uhrzeitfeldeinheiten" (distance_units für Python) angegeben. Dieser Feldwert wird auf Null gesetzt, wenn vor der Berechnung kein Entfernungsattribut angegeben ist. |
StartTime | Die Anfangszeit für die Route. Die Route kann vor Beginn des Zeitfensters für das Startdepot beginnen. In diesem Fall ist beim Startdepot eine Wartezeit vorhanden. Wenn Verkehrsdaten verwendet werden, die mehrere Zeitzonen umfassen, wird die Zeitzone für diesen Tageszeitwert von dem Netzwerkelement übernommen, auf dem sich das Startdepot befindet. |
EndTime | Die Endzeit für die Route. Die Route endet bei Abschluss des Einsatzes am Enddepot. Wenn Verkehrsdaten verwendet werden, die mehrere Zeitzonen umfassen, wird die Zeitzone für diesen Tageszeitwert von dem Netzwerkelement übernommen, auf dem sich das Enddepot befindet. |
TotalWaitTime | Die Gesamtwartezeit für alle Aufträge, Depots und Pausen der Route. Die Einheit für diesen Feldwert wird mithilfe des Parameters Uhrzeitfeldeinheiten (time_units in Python) angegeben. |
TotalViolationTime | Der Gesamtzeitverstoß für alle Aufträge und Pausen der Route. Die Einheit für diesen Feldwert wird mithilfe des Parameters Uhrzeitfeldeinheiten (time_units in Python) angegeben. |
RenewalCount | Für eine Route mit Lagern zum Be-/Entladen entspricht dies der Anzahl der Stopps an Depots, bei denen ein Fahrzeug be- oder entladen wird. |
TotalRenewalServiceTime | Bei einer Route mit Lagern zum Be-/Entladen ist dies die Gesamtdurchführungszeit für alle Stopps zum Be- und Entladen auf der Route. Die Einheit für diesen Feldwert wird mithilfe des Parameters Uhrzeitfeldeinheiten (time_units in Python) angegeben. |
Directions-Feature-Class
"Wegbeschreibung" ist eine Line-Feature-Class, die schrittweise Anleitungen enthält, anhand deren die Fahrer ihren zugewiesenen Routen leichter folgen können. Der Standardname dieser Ausgabe-Feature-Class ist "Wegbeschreibung", Sie können ihn jedoch ändern, indem Sie den Parameter "Ausgabename für Wegbeschreibung" (output_directions_name in Python) vor der Berechnung ändern. Zusätzlich erstellt das Werkzeug "Vehicle Routing Problem berechnen" stets die Directions-Feature-Class. Sie können mithilfe des Parameters "Wegbeschreibungen füllen" (populate_directions in Python) wählen, ob die Feature-Class während der Berechnung mit Features gefüllt werden soll. Standardmäßig wird sie nicht gefüllt. Wenn Sie keine Wegbeschreibungen brauchen, können Sie die Berechnungszeiten sowie die von Servern auf Clients übertragene Datenmenge erheblich reduzieren.
ArcGIS weist der Directions-Feature-Class dasselbe Koordinatensystem zu, das auch vom zugrunde liegenden Netzwerk-Dataset verwendet wird. Dies kann durch die Angabe eines Wertes für die Ausgabe-Koordinatensystem-Geoverarbeitungsumgebung gesteuert werden.
Im Folgenden werden die Feldnamen der Directions-Feature-Class aufgeführt und beschrieben.
Feldname | Beschreibung |
---|---|
ObjectID | Das vom System verwaltete ID-Feld. |
Shape | Das Geometriefeld, das das Shape der Linien angibt. |
RouteName | Der Name der Route, auf die sich die Fahraktion bezieht. |
ArriveTime | Die Uhrzeit, an der die jeweilige Fahraktion initiiert wird. Wenn die Route mehrere Tage umfasst, werden das Datum und die Uhrzeit angezeigt. |
Type | Dieses Feld ist für erweiterte Benutzer, die den Wegbeschreibungstext anpassen möchten. Die meisten Benutzer können ihre Anforderungen erfüllen, indem sie dieses Feld ignorieren und stattdessen auf das Feld Text verweisen. "Type" bezieht sich auf eine Konstante in einer von zwei Enumerationen: esriDirectionsManueverType or esriDirectionsStringType. (In der Beschreibung des Feldes SubItemType wird angegeben, auf welche Enumeration sich der Wert Type bezieht.) |
SubItemType | Dieses Feld ist für erweiterte Benutzer, die den Wegbeschreibungstext anpassen möchten. Die meisten Benutzer können ihre Anforderungen erfüllen, indem sie dieses Feld ignorieren und stattdessen auf das Feld Text verweisen. SubItemType wird in Verbindung mit Type verwendet, um die im Feld Text angezeigte Wegbeschreibung zu erstellen. Das Feld SubItemType gibt an, ob sich das Feld Type auf den Wert einer Konstante in der Enumeration esriDirectionsManueverType oder esriDirectionsStringType bezieht.
|
Text | Eine Textbeschreibung der Wegbeschreibung. |
ElapsedTime | Die verstrichene Zeit zwischen dem Beginn der aktuellen Wegbeschreibung und dem Beginn der nächsten bzw. dem Ende der Route für die letzte Wegbeschreibung. Einige Wegbeschreibungen enthalten zusätzliche Datensätze für Durchführungszeit, Zeitverstöße usw. In diesen Fällen wird die verstrichene Zeit für jeden Datensatz repliziert. Wenn Sie die insgesamt verstrichene Zeit addieren wollen, wählen Sie die Datensätze mit dem Typewert 1 aus, und addieren Sie die Datensätze. Die Einheit für diesen Feldwert wird mithilfe des Parameters Uhrzeitfeldeinheiten (time_units in Python) angegeben. |
DriveDistance | Die Entfernung zwischen der Position der aktuellen Wegbeschreibung und der nächsten bzw. dem Ende der Route für die letzte Wegbeschreibung. Dieser Wert ist bei Wegbeschreibungen für Standorte, die mit dem Beginn des nächsten Routenteils identisch sind, 0. |
Tabelle "Stopps"
Die Tabelle "Stopps" bietet Informationen über Stopps bei Depots, Aufträgen und Unterbrechungen. Die Information umfasst die Routen, auf denen die Stopps erfolgen, die Ankunfts- und Abfahrtszeiten sowie die Reihenfolge der Stopps.
Der Standardname dieser Ausgabe-Tabelle ist "Stopps", Sie können ihn jedoch ändern, indem Sie den Parameter Ausgabe-Stoppname (output_stops_name in Python) vor der Berechnung ändern.
Im Folgenden werden die Feldnamen der Tabelle "Stopps" aufgeführt und beschrieben.
Feldname | Beschreibung |
---|---|
ObjectID | Das vom System verwaltete ID-Feld. |
Name | Der Name des Stopps. Dies ist ein Fremdschlüssel für den Namen des Depots, des Auftrags oder der Unterbrechung in den Eingabe-Feature-Sets und im Recordset. Das Eingabe-Feature- oder -Recordset wird durch das StopType-Feld angegeben. |
PickupQuantities | Größe der Fracht oder Anzahl der Personen, die an einem Stopp abgeholt werden sollen. Wenn mehrere Dimensionen an einen Stopp geliefert werden, wird die entsprechende Anzahl jeweils durch ein Leerzeichen getrennt. Die Einheiten für dieses Feld werden nicht gespeichert. Sie sollten die Einheiten so interpretieren wie bei der Eingabe im Feld Quantities der Eingabe-Routen sowie in den Feldern PickupQuantities und DeliveryQuantities der eingegebenen Aufträge. (Alle diese Felder müssen mit denselben Einheiten und den entsprechenden Dimensionen angegeben sein.) |
DeliveryQuantities | Größe der Fracht oder Anzahl der Personen, die an einen Stopp geliefert werden sollen. Wenn mehrere Dimensionen an einen Stopp geliefert werden, wird die entsprechende Anzahl jeweils durch ein Leerzeichen getrennt. Die Einheiten für dieses Feld werden nicht gespeichert. Sie sollten die Einheiten so interpretieren wie bei der Eingabe im Feld Quantities der Eingabe-Routen sowie in den Feldern PickupQuantities und DeliveryQuantities der eingegebenen Aufträge. (Alle diese Felder müssen mit denselben Einheiten und den entsprechenden Dimensionen angegeben sein.) |
StopType | Gibt an, ob ein Stopp ein Depot, einen Auftrag oder eine Unterbrechung darstellt. Das Feld speichert einen kodierten Wert, der sich wie folgt interpretieren lässt:
|
RouteName | Der Name der Route, auf der der Stopp erfolgt. |
Sequence | Die relative Reihenfolge, in der die zugeteilte Route den Stopp anfährt. Durch Sortierung nach den Feldern RouteName und Sequence werden für jede Route geordnete Listen der Stopps erstellt. |
FromPreviousTravelTime | Die vestrichene Fahrtzeit vom vorherigen Stopp der Route zum aktuellen Stopp. Die Einheit für diesen Feldwert wird mithilfe des Parameters Uhrzeitfeldeinheiten (time_units in Python) angegeben. |
FromPreviousDistance | Die Entfernung auf der der Route vom vorherigen Stopp der Route zum aktuellen Stopp. Die Einheit für diesen Feldwert wird durch den Parameter "Uhrzeitfeldeinheiten" (distance_units für Python) angegeben. |
ArriveCurbApproach | Gibt an, auf welcher Seite des Fahrzeugs sich die Bordsteinkante bei der Ankunft am Stopp befindet. |
DepartCurbApproach | Gibt an, auf welcher Seite des Fahrzeugs sich die Bordsteinkante bei der Abfahrt vom Stopp befindet. |
ArriveTime | Uhrzeit für die Ankunft am Stopp auf der Route. Wenn das Netzwerk-Dataset mit Zeitzonen konfiguriert ist, entspricht der Tageszeitwert der Zeitzone, in der sich der Stopp befindet. Andernfalls entspricht er der auf dem Computer konfigurierten Zeitzone, mit dem die Analyse berechnet wird. |
DepartTime | Uhrzeit für die Abfahrt vom Stopp auf der Route. Wenn das Netzwerk-Dataset mit Zeitzonen konfiguriert ist, entspricht der Tageszeitwert der Zeitzone, in der sich der Stopp befindet. Andernfalls entspricht er der auf dem Computer konfigurierten Zeitzone, mit dem die Analyse berechnet wird. |
ArriveTimeUTC | Uhrzeit für die Ankunft am Stopp auf der Route. Dieser Wert wird in koordinierter Weltzeit (Coordinated Universal Time, UTC) angegeben. Dieses Feld ist Null, wenn keine Zeitzonen für das Netzwerk-Dataset konfiguriert sind. |
DepartTimeUTC | Uhrzeit für die Abfahrt vom Stopp auf der Route. Dieser Wert wird in koordinierter Weltzeit (Coordinated Universal Time, UTC) angegeben. Dieses Feld ist Null, wenn keine Zeitzonen für das Netzwerk-Dataset konfiguriert sind. |
WaitTime | Die Wartezeit oder der Aufenthalt am Stopp. Beispielsweise fällt eine Wartezeit an, wenn auf einer Route bei einem Auftrag gewartet werden muss, bis sich ein Zeitfenster öffnet. |
ViolationTime | Die vom Ende des Zeitfensters für den Stopp bis zur Ankunft des Fahrzeugs für die Route verstrichene Zeit. |
Visualisieren von Stopps
Die Tabelle "Stopps" ist keine Feature-Class, das bedeutet, dass Sie nicht einfach eine Tabelle zu einer Karte hinzufügen können, um zu sehen, wo die Stopps liegen. Stattdessen müssen Sie zusätzliche Schritte durchführen, um Stopps auf einer Karte zu visualisieren. (Im Folgenden erhalten Sie entsprechende Anleitungen.) Sie empfinden die Vorgehensweise für die Anzeige von Stopps einer Route auf einer Karte womöglich als umständlich. Bedenken Sie jedoch, dass dieses Werkzeug zur Erstellung von VRP-Web-Services konzipiert ist. Dafür wurde die Ausgabe so knapp wie möglich gestaltet, um die Serververarbeitung und die Datenübertragung zu minimieren. Dennoch ist die Ausgabe nicht zu knapp. Sie bietet Ihnen immer noch die wesentlichen Informationen, die Sie zur Visualisierung von Stopps als Punkt-Features brauchen.
Wenn Sie beispielsweise sehen möchten, wo bei Aufträgen Stopps vorhanden sind, verknüpfen Sie die Tabelle "Stopps" mit dem ursprünglichen Auftrags-Feature-Set, das als Eingabe verwendet wurde. Sie können diese Datasets auswählen und über die Felder StopType und Name in der Tabelle Stops und das Feld Name im Feature-Set Orders verbinden. Eine ähnliche Methode können Sie für die Anzeige der Stopps bei Depots verwenden.
Im Unterschied zu Aufträgen und Depots werden Unterbrechungen nicht mit einem Eingabe-Feature-Set verknüpft. Daher ist zu deren Visualisierung eine andere Methode erforderlich. Sie können Wegbeschreibungen in der Analyse generieren, die Linien auswählen, die Features darstellen, und sie mithilfe des Werkzeugs Feature-Stützpunkte in Punkte in Punkte umwandeln.
Tabelle "Nicht zugewiesene Stopps"
Die Tabelle "Nicht zugewiesene Stopps" listet die Aufträge auf, die auf keinen Routen besucht werden konnten. Sie gibt auch an, warum ein Stopp nicht besucht werden konnte, damit Sie die erforderlichen Änderungen zur Behebung des Problems vornehmen können.
Der Standardname dieser Ausgabe-Tabelle ist "Stopps", Sie können ihn jedoch ändern, indem Sie den Parameter Name von nicht zugewiesenen Ausgabe-Stopps (output_unassigned_stops_name) vor der Berechnung ändern.
Im Folgenden werden die Feldnamen der Tabelle "Stopps" aufgeführt und beschrieben.
Feldname | Beschreibung |
---|---|
ObjectID | Das vom System verwaltete ID-Feld. |
StopType | Gibt an, ob ein Stopp ein Depot, einen Auftrag oder eine Unterbrechung darstellt. Das Feld speichert einen kodierten Wert, der sich wie folgt interpretieren lässt:
|
Name | Der Name des Stopps. Dies ist ein Fremdschlüssel für den Namen des Depots, des Auftrags oder der Unterbrechung in den Eingabe-Feature-Sets und im Recordset. Das Eingabe-Feature- oder -Recordset wird durch das StopType-Feld angegeben. |
ViolatedConstraints | Dieses Feld enthält eine Zusammenfassung von Beschränkungsverletzungen. Es wird nach einem Berechnungsvorgang festgelegt. Wenn eine Einschränkung verletzt wird, kann dem Feld eine Kombination aus den unten aufgeführten Verletzungen zugewiesen werden:
|
Status | Dieses Feld wird von einer Domäne von Werten eingeschränkt, die unten aufgeführt ist (ihre codierten Werte werden in Klammern angegeben).
|