Odpowiedź po rozwiązaniu problemu optymalizacji trasy zawierająca trasy pokonane przez każdy pojazd, pominięte przesyłki i całkowity koszt rozwiązania.
| Zapis JSON |
|---|
{ "routes": [ { object ( |
| Pola | |
|---|---|
routes[] |
Trasy obliczone dla każdego pojazdu. i-ta trasa odpowiada i-temu pojazdowi w modelu. |
requestLabel |
Kopia |
skippedShipments[] |
Lista wszystkich pominiętych przesyłek. |
validationErrors[] |
Lista wszystkich błędów weryfikacji, które udało nam się wykryć niezależnie. Wyjaśnienie komunikatu |
processedRequest |
W niektórych przypadkach modyfikujemy przychodzące żądanie przed jego rozwiązaniem, np. dodając koszty. Jeśli solvingMode == TRANSFORM_AND_RETURN_REQUEST, zmodyfikowane żądanie jest zwracane tutaj. Eksperymentalne: więcej informacji znajdziesz na stronie https://developers.google.com/maps/tt/route-optimization/experimental/objectives/make-request. |
metrics |
Czas trwania, odległość i statystyki użytkowania tego rozwiązania. |
OptimizeToursValidationError
Opisuje błąd lub ostrzeżenie napotkane podczas weryfikacji OptimizeToursRequest.
| Zapis JSON |
|---|
{
"code": integer,
"displayName": string,
"fields": [
{
object ( |
| Pola | |
|---|---|
code |
Błąd weryfikacji jest określany przez parę ( Pola w sekcji poniżej zawierają więcej informacji o błędzie. MULTIPLE ERRORS: jeśli występuje wiele błędów, proces weryfikacji próbuje wyświetlić kilka z nich. Podobnie jak w przypadku kompilatora jest to proces niedoskonały. Niektóre błędy weryfikacji będą „krytyczne”, co oznacza, że zatrzymają cały proces weryfikacji. Dotyczy to m.in. błędów STABILNOŚĆ: wartości |
displayName |
Wyświetlana nazwa błędu. |
fields[] |
Kontekst błędu może obejmować 0, 1 (najczęściej) lub więcej pól. Na przykład odniesienie się do pierwszego odbioru pojazdu 4 i dostawy 2 może wyglądać tak: Pamiętaj jednak, że liczność |
errorMessage |
Zrozumiały dla człowieka ciąg tekstowy opisujący błąd. Istnieje mapowanie 1:1 między STABILNOŚĆ: niestabilna: komunikat o błędzie powiązany z danym |
offendingValues |
Może zawierać wartości pól. Nie zawsze jest to możliwe. Nie należy na nim polegać i należy go używać tylko do ręcznego debugowania modelu. |
FieldReference
Określa kontekst błędu weryfikacji. FieldReference zawsze odnosi się do danego pola w tym pliku i ma taką samą strukturę hierarchiczną. Na przykład element 2 z startTimeWindows pojazdu 5 możemy określić za pomocą tego kodu:
name: "vehicles" index: 5 subField { name: "endTimeWindows" index: 2 }
Pomijamy jednak podmioty najwyższego poziomu, takie jak OptimizeToursRequest lub ShipmentModel, aby nie przeładować wiadomości.
| Zapis JSON |
|---|
{ "name": string, "subField": { object ( |
| Pola | |
|---|---|
name |
Nazwa pola, np. „vehicles”. |
subField |
W razie potrzeby zagnieżdżone rekurencyjnie pole podrzędne. |
Pole zbiorcze Pole |
|
index |
Indeks pola, jeśli jest powtarzane. |
key |
Klucz, jeśli pole jest mapą. |
Dane
Ogólne dane zagregowane ze wszystkich tras.
| Zapis JSON |
|---|
{
"aggregatedRouteMetrics": {
object ( |
| Pola | |
|---|---|
aggregatedRouteMetrics |
Zagregowane na trasach. Każda wartość to suma (lub maksymalna wartość w przypadku wczytań) wszystkich pól |
skippedMandatoryShipmentCount |
Liczba pominiętych obowiązkowych przesyłek. |
usedVehicleCount |
Liczba używanych pojazdów. Uwaga: jeśli trasa pojazdu jest pusta, a wartość |
earliestVehicleStartTime |
Najwcześniejszy czas rozpoczęcia dla pojazdu używanego, obliczony jako minimum ze wszystkich pojazdów używanych Korzysta ze standardu RFC 3339, w którym wygenerowane dane wyjściowe są zawsze znormalizowane do formatu Z i zawierają 0, 3, 6 lub 9 cyfr po przecinku. Akceptowane są też przesunięcia inne niż „Z”. Przykłady: |
latestVehicleEndTime |
Najpóźniejsza godzina zakończenia dla używanego pojazdu, obliczona jako maksimum ze wszystkich używanych pojazdów Korzysta ze standardu RFC 3339, w którym wygenerowane dane wyjściowe są zawsze znormalizowane do formatu Z i zawierają 0, 3, 6 lub 9 cyfr po przecinku. Akceptowane są też przesunięcia inne niż „Z”. Przykłady: |
costs |
Koszt rozwiązania podzielony według pól żądań związanych z kosztami. Kluczami są ścieżki protokołu, względne w stosunku do wejściowego OptimizeToursRequest, np. „model.shipments.pickups.cost”, a wartościami są łączne koszty wygenerowane przez odpowiednie pole kosztu, zagregowane w całym rozwiązaniu. Inaczej mówiąc, costs["model.shipments.pickups.cost"] to suma wszystkich kosztów odbioru w ramach rozwiązania. Wszystkie koszty zdefiniowane w modelu są tu szczegółowo raportowane, z wyjątkiem kosztów związanych z atrybutami przejścia, które od 2022 r. są raportowane tylko w formie zagregowanej. |
totalCost |
Całkowity koszt rozwiązania. Suma wszystkich wartości na mapie kosztów. |