Na następnej stronie znajdziesz tabele parametrów w kolejności alfabetycznej dla tych komponentów metody optimizeTours interfejsu Route Optimization API:
Te tabele parametrów zawierają tylko listę i krótki opis obiektów najwyższego poziomu oraz głównych parametrów, aby ułatwić ich odnalezienie. Pełną listę z opisami i wszystkimi zagnieżdżonymi parametrami znajdziesz w dokumentacji interfejsu API.
Treść żądania
Treść żądania zawiera te elementy, które są zilustrowane na diagramie po prawej stronie i wymienione w tabeli poniżej:
OptimizeToursRequest: obiekt żądania najwyższego poziomu zawierający model i parametry rozwiązywania.ShipmentModel: podstawowa struktura danych zawierająca przesyłki, pojazdy i globalne ograniczenia.Shipment: zadanie obejmujące odbiory i dostawy.VisitRequest: lokalizacja i ograniczenia dotyczące odbioru lub dostawy.
Vehicle: Pojazd dostępny do realizacji dostaw.
| Rodzic | Parametr | Typ obiektu | Opis |
|---|---|---|---|
OptimizeToursRequest |
allowLargeDeadlineDespiteInterruptionRisk |
wartość logiczna (true/false) |
Jeśli true, żądanie jest przetwarzane nawet wtedy, gdy limit czasu jest ustawiony na dużą wartość (dłuższą niż 30 minut), co może spowodować przerwy w działaniu serwera. |
considerRoadTraffic |
wartość logiczna (true/false) |
Jeśli true, korzysta z danych o ruchu do wyznaczania tras. Jeśli ma wartość false, używane są tylko prędkości w sieci drogowej. |
|
geodesicMetersPerSecond |
liczba | Gdy wartość useGeodesicDistances to „true”, ta prędkość jest używana do obliczania czasu podróży. |
|
injectedFirstSolutionRoutes[] |
tablica obiektów (ShipmentRoute) |
Trasy z poprzedniego rozwiązania, od których ma się rozpocząć optymalizacja. | |
injectedSolutionConstraint |
object (InjectedSolutionConstraint) |
Ogranicza rozwiązanie do podobieństwa do istniejących tras, określając, które właściwości muszą zostać zachowane, a które można pominąć. | |
interpretInjectedSolutionsUsingLabels |
wartość logiczna (true/false) |
Jeśli true, dopasowuje przesyłki lub pojazdy na wstrzykniętych trasach według ich label zamiast indeksu tablicy. |
|
label |
ciąg znaków | Dowolna etykieta identyfikująca żądanie, zwracana w odpowiedzi. | |
maxValidationErrors |
liczba całkowita | Określa maksymalną liczbę błędów weryfikacji do zwrócenia. Jeśli nie określisz tu żadnej wartości, będzie obowiązywać limit domyślny. | |
model |
object (ShipmentModel) |
Wymagane. Zestaw pojazdów i przesyłek, które mają zostać zoptymalizowane. | |
populatePolylines |
wartość logiczna (true/false) |
Jeśli true, zwraca zakodowane linie łamane dla tras. |
|
populateTransitionPolylines |
wartość logiczna (true/false) |
Jeśli true, zwraca zakodowane linie łamane dla poszczególnych przejść między wizytami. |
|
refreshDetailsRoutes[] |
tablica obiektów (ShipmentRoute) |
Lista tras do odświeżenia. Spowoduje to ponowne obliczenie linii łamanych, czasu trwania i odległości dla istniejących tras bez modyfikowania kolejności wizyt. | |
searchMode |
enum (SearchMode) |
RETURN_FAST (szybkie wyniki) lub CONSUME_ALL_AVAILABLE_TIME (najlepsza jakość w ramach limitu czasu). |
|
solvingMode |
enum (SolvingMode) |
DEFAULT_SOLVE (domyślnie) lub VALIDATE_ONLY, aby zweryfikować model bez rozwiązywania. |
|
timeout |
Czas trwania | Maksymalny czas działania narzędzia do rozwiązywania (np. „30s”, „300s”). | |
useGeodesicDistances |
wartość logiczna (true/false) |
Jeśli true, odległości i czasy podróży są obliczane na podstawie odległości geodezyjnych (w linii prostej) i prędkości geodesicMetersPerSecond. |
|
ShipmentModel(Część OptimizeToursRequest) |
durationDistanceMatrices[] |
tablica obiektów (DurationDistanceMatrix) |
Określa niestandardowe macierze czasu trwania i odległości używane do wyznaczania tras między lokalizacjami. |
durationDistanceMatrixDstTags[] |
tablica ciągów znaków | Tagi określające miejsca docelowe (kolumny) w przypadku niestandardowych macierzy czasu trwania i odległości. | |
durationDistanceMatrixSrcTags[] |
tablica ciągów znaków | Tagi określające źródła (wiersze) niestandardowych macierzy czasu trwania i odległości. | |
globalDurationCostPerHour |
liczba | Koszt za godzinę globalnego przedziału czasowego trasy, od najwcześniejszego rozpoczęcia podróży do najpóźniejszego zakończenia podróży. | |
globalEndTime |
Sygnatura czasowa | Najpóźniejsza godzina zakończenia dowolnego wydarzenia w modelu. | |
globalStartTime |
Sygnatura czasowa | Najwcześniejsza godzina rozpoczęcia dowolnego wydarzenia w modelu. | |
maxActiveVehicles |
liczba całkowita | Maksymalna liczba pojazdów, które mogą być aktywne w rozwiązaniu. | |
precedenceRules[] |
tablica obiektów (PrecedenceRule) |
Reguły określające ograniczenia kolejności między poszczególnymi przesyłkami. | |
shipments[] |
tablica obiektów (Shipment) |
Lista przesyłek, które mają zostać obsłużone. | |
shipmentTypeIncompatibilities[] |
tablica obiektów (ShipmentTypeIncompatibility) |
Reguły uniemożliwiające obsługę przesyłek określonych typów przez ten sam pojazd. | |
shipmentTypeRequirements[] |
tablica obiektów (ShipmentTypeRequirement) |
reguły wymagające, aby przesyłki określonych typów były obsługiwane przez ten sam pojazd; | |
transitionAttributes[] |
tablica obiektów (TransitionAttributes) |
Określa dodatkowe koszty, opóźnienia i limity odległości w przypadku przejść między wizytami z określonymi tagami. | |
vehicles[] |
tablica obiektów (Vehicle) |
Lista pojazdów dostępnych do realizacji dostaw. | |
Shipment(Część ShipmentModel) |
allowedVehicleIndices[] |
tablica liczb całkowitych | Indeksy pojazdów, które mogą zrealizować tę dostawę. |
costsPerVehicle[] |
mapa (klucz: liczba całkowita, wartość: liczba) | Dodatkowe koszty poniesione, jeśli przesyłkę obsługuje konkretny pojazd. | |
costsPerVehicleIndices[] |
tablica liczb całkowitych | Indeksy pojazdów, do których mają zastosowanie wartości costsPerVehicle. |
|
deliveries[] |
tablica obiektów (VisitRequest) |
Alternatywne sposoby dostarczenia przesyłki. | |
ignore |
wartość logiczna (true/false) |
Jeśli wartość to true, przesyłka jest ignorowana i nie jest używana do optymalizacji. |
|
label |
ciąg znaków | Zdefiniowana przez użytkownika etykieta identyfikująca przesyłkę, zwracana w odpowiedzi. | |
loadDemands |
mapa (klucz: ciąg znaków, wartość: Load) |
Wymagana pojemność (np. waga, objętość) do przewozu tej przesyłki. | |
penaltyCost |
liczba | Koszt, jeśli przesyłka nie zostanie obsłużona. Jeśli nie określisz tego ustawienia, wysyłka jest obowiązkowa. | |
pickups[] |
tablica obiektów (VisitRequest) |
Alternatywne sposoby odbioru przesyłki. | |
pickupToDeliveryAbsoluteDetourLimit |
Czas trwania | Maksymalny dopuszczalny czas objazdu między odbiorem a dostawą w porównaniu z bezpośrednią trasą. | |
pickupToDeliveryRelativeDetourLimit |
liczba | Maksymalny dozwolony względny objazd w przypadku przesyłki (np. wartość 2,0 oznacza, że łączny czas może być co najwyżej 2-krotnie dłuższy niż czas podróży bezpośredniej). | |
pickupToDeliveryTimeLimit |
Czas trwania | Maksymalny dopuszczalny czas od rozpoczęcia odbioru do rozpoczęcia dostawy. | |
shipmentType |
ciąg znaków | Klasyfikacja typu używana w przypadku reguł niezgodności i wymagań. | |
VisitRequest(Komponent pickups i deliveries w Shipment) |
arrivalLocation |
object (LatLng) |
Geograficzna lokalizacja przyjazdu w postaci współrzędnych szerokości i długości geograficznej. |
arrivalWaypoint |
object (Waypoint) |
Lokalizacja, do której przyjeżdża pojazd, aby zrealizować wizytę. Określony przez współrzędne lub identyfikator miejsca. | |
cost |
liczba | Koszt poniesiony, jeśli to konkretne żądanie wizyty zostanie wybrane przez rozwiązanie. | |
departureLocation |
object (LatLng) |
Geograficzna lokalizacja wylotu w postaci współrzędnych geograficznych. | |
departureWaypoint |
object (Waypoint) |
Miejsce, z którego pojazd odjeżdża po zakończeniu wizyty. Jeśli zostanie pominięty, przyjmuje się, że jest taki sam jak arrivalWaypoint. |
|
duration |
Czas trwania | Czas trwania wizyty (czas obsługi), np. ile czasu zajmuje załadunek lub rozładunek. | |
label |
ciąg znaków | Zdefiniowana przez użytkownika etykieta tego konkretnego żądania wizyty, zwracana w odpowiedzi. | |
loadDemands |
mapa (klucz: ciąg znaków, wartość: Load) |
Wymaga określenia zmiany obciążenia podczas tej wizyty (np. -1, aby dostarczyć przesyłkę). | |
tags[] |
tablica ciągów znaków | Tagi dołączone do tego żądania wizyty. Służą one do obliczania czasu podróży między tą wizytą a innymi za pomocą transitionAttributes. |
|
timeWindows[] |
tablica obiektów (TimeWindow) |
Dozwolone przedziały czasu przyjazdu w przypadku tej wizyty. | |
visitTypes[] |
tablica ciągów znaków | Ciągi znaków opisujące typ wizyty (np. „dostawa”, „instalacja”). Służy do stosowania extraVisitDurationForVisitType z modelu pojazdu. |
|
Vehicle(Część ShipmentModel) |
breakRule |
object (BreakRule) |
Określa reguły dotyczące przerw (np. obowiązkowa przerwa na lunch). |
costPerHour |
liczba | Koszt na godzinę całkowitego czasu trwania trasy. | |
costPerKilometer |
liczba | Koszt za przejechany kilometr. | |
costPerTraveledHour |
liczba | Koszt za godzinę, gdy pojazd jest w ruchu. | |
endLocation |
object (LatLng) |
Geograficzna lokalizacja końcowa w postaci współrzędnych geograficznych. | |
endTags[] |
tablica ciągów znaków | Tagi określające stan końcowy pojazdu, używane w przypadku atrybutów przejścia. | |
endTimeWindows[] |
tablica obiektów (TimeWindow) |
Dozwolone przedziały czasu, w których pojazd może zakończyć trasę. | |
endWaypoint |
object (Waypoint) |
Geograficzne miejsce docelowe z użyciem punktu pośredniego (współrzędne lub identyfikator miejsca). | |
extraVisitDurationForVisitType |
mapa (klucz: ciąg znaków, wartość: Czas trwania) | Dodaje do wizyt dodatkowy czas trwania na podstawie ich visitType. |
|
fixedCost |
liczba | Stały koszt, który jest naliczany, gdy pojazd jest używany, niezależnie od odległości lub czasu trwania trasy. | |
ignore |
wartość logiczna (true/false) |
Jeśli wartość to true, pojazd jest ignorowany i nie jest używany do optymalizacji. |
|
label |
ciąg znaków | Zdefiniowana przez użytkownika etykieta pojazdu, zwracana w odpowiedzi. | |
loadLimits |
mapa (klucz: ciąg znaków, wartość: LoadLimit) |
ładowność pojazdów (np. maksymalna waga, maksymalna objętość); | |
routeDistanceLimit |
object (DistanceLimit) |
Limit twardy lub miękki dotyczący całkowitej odległości na trasie pojazdu. | |
routeDurationLimit |
object (DurationLimit) |
Sztywne lub elastyczne ograniczenie łącznego czasu trwania trasy pojazdu. | |
routeModifiers |
object (RouteModifiers) |
jedno lub kilka ograniczeń, np. unikanie tras płatnych, autostrad lub promów; | |
startLocation |
object (LatLng) |
Geograficzna lokalizacja początkowa w postaci współrzędnych szerokości i długości geograficznej. | |
startTags[] |
tablica ciągów znaków | Tagi określające stan początkowy pojazdu, używane w przypadku atrybutów przejścia. | |
startTimeWindows[] |
tablica obiektów (TimeWindow) |
Dozwolone przedziały czasu, w których pojazd może rozpocząć trasę. | |
startWaypoint |
object (Waypoint) |
Geograficzna lokalizacja początkowa z użyciem punktu pośredniego (współrzędne lub identyfikator miejsca). | |
travelDurationLimit |
object (DurationLimit) |
Limit twardy lub miękki dotyczący łącznego czasu podróży pojazdu (z wyłączeniem czasu oczekiwania lub obsługi). | |
travelDurationMultiple |
liczba | Mnożnik stosowany do czasu podróży (np. 1,5 – podróż trwa o 50% dłużej). | |
travelMode |
enum (TravelMode) |
środek transportu (np. DRIVING, WALKING). Wpływa na czas i odległość podróży. |
|
unloadingPolicy |
enum (UnloadingPolicy) |
Określa kolejność rozładunku (np. LIFO lub LAST_IN_FIRST_OUT). |
|
usedIfRouteIsEmpty |
wartość logiczna (true/false) |
Jeśli true, pojazd jest uznawany za używany nawet bez przesyłek. Ponosi stałe koszty i przemieszcza się między lokalizacją początkową a końcową. |
Treść odpowiedzi
Treść odpowiedzi zawiera te elementy, które są przedstawione na diagramie po prawej stronie i wymienione w tabeli poniżej:
OptimizeToursResponse: obiekt odpowiedzi najwyższego poziomu, który zawiera zoptymalizowane trasy i dane.Metrics: ogólne statystyki kosztów i wykonania rozwiązania.ShipmentRoute: sekwencja wizyt i trasa przejazdu przypisana do jednego pojazdu.Visit: przystanek na trasie, na którym można odebrać lub dostarczyć przesyłkę.Transition: ścieżka podróży i czas trwania między 2 przystankami na trasie.AggregatedMetrics: suma łącznych wartości czasu trwania, odległości i innych danych. Ten element może występować zarówno wMetrics, jak i wShipmentRoute.
| Rodzic | Parametr | Typ obiektu | Opis |
|---|---|---|---|
OptimizeToursResponse |
metrics |
object (Metrics) |
Zagregowane dane dotyczące rozwiązania, w tym łączny koszt, łączny dystans, łączny czas trwania i liczba użyć pojazdu. |
requestLabel |
ciąg znaków | Etykieta skopiowana z pola label w żądaniu. Używany do powiązania odpowiedzi z pierwotnym żądaniem. |
|
routes[] |
tablica obiektów (ShipmentRoute) |
Lista tras obliczonych dla każdego pojazdu. Zawiera wpis dla każdego pojazdu, niezależnie od tego, czy jest używany. | |
skippedShipments[] |
tablica obiektów (SkippedShipment) |
Lista przesyłek, które zostały pominięte (nieobsłużone), wraz z przyczynami ich pominięcia. | |
validationErrors[] |
tablica obiektów (OptimizeToursValidationError) |
Lista błędów weryfikacji znalezionych w modelu wejściowym. To pole jest wypełniane, jeśli wartość solvingMode została ustawiona na VALIDATE_ONLY lub jeśli podczas rozwiązywania wystąpiły błędy. |
|
Metrics(Część OptimizeToursResponse) |
aggregatedRouteMetrics |
object (AggregatedMetrics) |
zagregowane statystyki dotyczące wszystkich tras, takie jak łączna odległość podróży, łączny czas trwania i czas oczekiwania; |
costs |
mapa (klucz: tekst, wartość: liczba) | zestawienie kosztów według typu (np. „model.vehicles.cost_per_kilometer”, „model.shipments.penalty_cost”). | |
earliestVehicleStartTime |
Sygnatura czasowa | Najwcześniejszy czas rozpoczęcia spośród wszystkich używanych pojazdów. | |
latestVehicleEndTime |
Sygnatura czasowa | Najpóźniejszy czas zakończenia wśród wszystkich używanych pojazdów. | |
skippedMandatoryShipmentCount |
liczba całkowita | Liczba pominiętych obowiązkowych dostaw. | |
totalCost |
liczba | Całkowity koszt rozwiązania, czyli suma kosztów wszystkich tras i kar za pominięte przesyłki. | |
usedVehicleCount |
liczba całkowita | Liczba pojazdów używanych w rozwiązaniu. | |
AggregatedMetrics(część Metrics i ShipmentRoute) |
breakDuration |
Czas trwania | Łączny czas przerw na wszystkich trasach. |
costs |
mapa (klucz: tekst, wartość: liczba) | zestawienie kosztów według typu (np. „model.vehicles.cost_per_kilometer”, „model.shipments.penalty_cost”). | |
delayDuration |
Czas trwania | Łączny czas opóźnienia na wszystkich trasach. | |
earliestVehicleStartTime |
Sygnatura czasowa | Najwcześniejszy czas rozpoczęcia spośród wszystkich używanych pojazdów. | |
latestVehicleEndTime |
Sygnatura czasowa | Najpóźniejszy czas zakończenia wśród wszystkich używanych pojazdów. | |
maxLoads |
mapa (klucz: ciąg znaków, wartość: VehicleLoad) |
Maksymalne obciążenie przewożone przez dowolny pojazd w dowolnym momencie rozwiązania, z podziałem na typ obciążenia. | |
performedShipmentCount |
liczba całkowita | Łączna liczba przesyłek zrealizowanych we wszystkich pojazdach. | |
skippedMandatoryShipmentCount |
liczba całkowita | Liczba pominiętych obowiązkowych dostaw. | |
totalCost |
liczba | Całkowity koszt rozwiązania, czyli suma kosztów wszystkich tras i kar za pominięte przesyłki. | |
totalDuration |
Czas trwania | Łączny czas trwania wszystkich tras (podróż + oczekiwanie + opóźnienie + przerwa + wizyta). | |
travelDistanceMeters |
liczba | Łączna odległość podróży w metrach na wszystkich trasach. | |
travelDuration |
Czas trwania | Łączny czas podróży na wszystkich trasach. | |
usedVehicleCount |
liczba całkowita | Liczba pojazdów używanych w rozwiązaniu. | |
visitDuration |
Czas trwania | Łączny czas spędzony na odwiedzaniu miejsc (załadunek/rozładunek) na wszystkich trasach. | |
waitDuration |
Czas trwania | Łączny czas oczekiwania na wszystkich trasach. | |
ShipmentRoute(Część OptimizeToursResponse) |
breaks[] |
tablica obiektów (Break) |
Lista przerw w podróży pojazdu na trasie. |
hasTrafficInfeasibilities |
wartość logiczna (true/false) |
Wskazuje, czy na trasie występują problemy związane z natężeniem ruchu. | |
metrics |
object (AggregatedMetrics) |
dane dotyczące tej trasy, np. całkowita przebyta odległość i czas podróży; | |
routeCosts |
mapa (klucz: tekst, wartość: liczba) | Zestawienie kosztów tej trasy. Klucze to typy kosztów (np. „cost_per_hour”), a wartości to kwoty. | |
routePolyline |
object (EncodedPolyline) |
Zakodowana linia łamana reprezentująca pełną ścieżkę trasy geograficznie. | |
routeTotalCost |
liczba | Całkowity koszt trasy, czyli suma wszystkich kosztów na mapie routeCosts. |
|
transitions[] |
tablica obiektów (Transition) |
Uporządkowana lista przejść (etapów podróży) łączących wizyty. | |
vehicleEndTime |
Sygnatura czasowa | Godzina zakończenia trasy przez pojazd. | |
vehicleIndex |
liczba całkowita | Indeks pojazdu w źródle ShipmentModel, który pokonuje tę trasę. |
|
vehicleLabel |
ciąg znaków | Zdefiniowana przez użytkownika etykieta pojazdu skopiowana z modelu żądania. | |
vehicleStartTime |
Sygnatura czasowa | Godzina rozpoczęcia trasy przez pojazd. | |
visits[] |
tablica obiektów (Visit) |
Uporządkowana sekwencja wizyt (odbiorów i dostaw) wykonywanych przez pojazd na tej trasie. | |
Visit(Część ShipmentRoute) |
detour |
Czas trwania | Dodatkowy czas objazdu poniesiony podczas tej wizyty w porównaniu z bezpośrednią trasą między poprzednią a następną wizytą. |
isPickup |
wartość logiczna (true/false) |
Jeśli true, ta wizyta jest odbiorem. Jeśli ma wartość Fałsz, jest to dostawa. |
|
loadDemands |
mapa (klucz: ciąg znaków, wartość: Load) |
Wymagania dotyczące załadunku spełnione podczas tej wizyty (np. -1 w przypadku dostawy). Jest to kopia odpowiednich VisitRequest wymagań dotyczących obciążenia. |
|
shipmentIndex |
liczba całkowita | Indeks pola Shipment w modelu źródłowym, z którego korzysta ta wizyta. |
|
shipmentLabel |
ciąg znaków | Etykieta przesyłki skopiowana z ShipmentModel. |
|
startTime |
Sygnatura czasowa | Godzina rozpoczęcia wizyty. | |
visitLabel |
ciąg znaków | Etykieta żądania wizyty skopiowana z VisitRequest w modelu. |
|
visitRequestIndex |
liczba całkowita | Indeks VisitRequest na liście odbioru lub dostawy przesyłki, do którego odnosi się ta wizyta. |
|
Transition(Część ShipmentRoute) |
breakDuration |
Czas trwania | Czas trwania przerw w tym przejściu. |
delayDuration |
Czas trwania | Czas trwania opóźnienia podczas tego przejścia (np. przybycie przed czasem i oczekiwanie na przedział czasowy). | |
routePolyline |
object (EncodedPolyline) |
Zakodowana linia łamana reprezentująca ścieżkę tej konkretnej zmiany. | |
routeToken |
ciąg znaków | Nieprzezroczysty token, który można przekazać do pakietu Google Navigation SDK, aby odtworzyć trasę podczas nawigacji. | |
startTime |
Sygnatura czasowa | Czas rozpoczęcia tego przejścia. | |
totalDuration |
Czas trwania | Łączny czas trwania podróży, w tym czas przejazdu, oczekiwania, przerw i opóźnień. | |
trafficInfoUnavailable |
wartość logiczna (true/false) |
Jeśli true, oznacza to, że dane o ruchu były niedostępne w przypadku tego przejścia. |
|
travelDistanceMeters |
liczba | Dystans przebyty podczas tego przejścia (w metrach). | |
travelDuration |
Czas trwania | Czas trwania podróży podczas tej zmiany. | |
vehicleLoads |
mapa (klucz: ciąg znaków, wartość: VehicleLoad) |
Ładunek przewożony przez pojazd podczas tego przejścia, z podziałem na typ ładunku (np. „weight”). | |
waitDuration |
Czas trwania | Czas oczekiwania przed rozpoczęciem kolejnej wizyty. |