Na tej stronie znajdziesz tabele parametrów w porządku alfabetycznym 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 znalezienie. Pełną listę z opisami i wszystkimi zagnieżdżonymi parametrami znajdziesz w dokumentacji API.
Treść żądania
Treść żądania zawiera te elementy, które są przedstawione 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 ograniczenia globalne.Shipment: zadanie z odbiorami i dostawami.VisitRequest: lokalizacja i ograniczenia dotyczące odbioru lub dostawy.
Vehicle: pojazd dostępny do realizacji dostaw.
| Ma dzieci | 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 ma wartość true, do wyznaczania trasy używa danych o natężeniu ruchu. Jeśli ma wartość false, używane są tylko prędkości sieci drogowej. |
|
geodesicMetersPerSecond |
liczba | Gdy parametr useGeodesicDistances ma wartość „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 |
obiekt (InjectedSolutionConstraint) |
Ogranicza rozwiązanie, aby było podobne do istniejących tras, określając, które właściwości muszą zostać zachowane, a które mogą zostać złagodzone. | |
interpretInjectedSolutionsUsingLabels |
wartość logiczna (true/false) |
Jeśli ma wartość true, dopasowuje przesyłki/pojazdy we wstrzykniętych trasach według ich label, a nie indeksu tablicy. |
|
label |
tekst | 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 zostanie określony, obowiązuje limit domyślny. | |
model |
obiekt (ShipmentModel) |
Wymagane. Zestaw pojazdów i przesyłek do optymalizacji. | |
populatePolylines |
wartość logiczna (true/false) |
Jeśli ma wartość true, zwraca zakodowane linie łamane tras. |
|
populateTransitionPolylines |
wartość logiczna (true/false) |
Jeśli ma wartość 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, czasów 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 sprawdzić model bez rozwiązywania. |
|
timeout |
Czas trwania | Maksymalny czas działania solvera (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 definiujące miejsca docelowe (kolumny) dla niestandardowych macierzy czasu trwania i odległości. | |
durationDistanceMatrixSrcTags[] |
tablica ciągów znaków | Tagi definiujące źródła (wiersze) niestandardowych macierzy czasu trwania i odległości. | |
globalDurationCostPerHour |
liczba | Koszt za godzinę globalnego przedziału czasu trasy, od najwcześniejszego rozpoczęcia do najpóźniejszego zakończenia przejazdu pojazdu. | |
globalEndTime |
Sygnatura czasowa | Najpóźniejszy czas zakończenia dowolnego zdarzenia w modelu. | |
globalStartTime |
Sygnatura czasowa | Najwcześniejszy czas 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 definiujące ograniczenia kolejności między określonymi przesyłkami. | |
shipments[] |
tablica obiektów (Shipment) |
Lista przesyłek do obsłużenia. | |
shipmentTypeIncompatibilities[] |
tablica obiektów (ShipmentTypeIncompatibility) |
Reguły uniemożliwiające obsługę przesyłek określonego typu przez ten sam pojazd. | |
shipmentTypeRequirements[] |
tablica obiektów (ShipmentTypeRequirement) |
Reguły wymagające, aby przesyłki określonego typu 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 przesyłek. | |
Shipment(część ShipmentModel) |
allowedVehicleIndices[] |
tablica liczb całkowitych | Indeksy pojazdów, które mogą wykonać tę przesyłkę. |
costsPerVehicle[] |
map (key: integer, value: number) | Dodatkowe koszty ponoszone, jeśli przesyłka jest obsługiwana przez 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 dostawy przesyłki. | |
ignore |
wartość logiczna (true/false) |
Jeśli true, przesyłka jest ignorowana i nie jest używana do optymalizacji. |
|
label |
tekst | Zdefiniowana przez użytkownika etykieta służąca do identyfikacji przesyłki, zwracana w odpowiedzi. | |
loadDemands |
map (key: string, value: Load) |
Wymagana pojemność (np. waga, objętość) do przewozu tej przesyłki. | |
penaltyCost |
liczba | Koszt, jeśli przesyłka nie jest obsługiwana. Jeśli nie jest ustawiona, przesyłka jest obowiązkowa. | |
pickups[] |
tablica obiektów (VisitRequest) |
Alternatywne sposoby odbioru przesyłki. | |
pickupToDeliveryAbsoluteDetourLimit |
Czas trwania | Maksymalny bezwzględny czas objazdu dozwolony między odbiorem a dostawą w porównaniu z trasą bezpośrednią. | |
pickupToDeliveryRelativeDetourLimit |
liczba | Maksymalny względny objazd dozwolony dla przesyłki (np. wartość 2,0 oznacza, że łączny czas może wynosić maksymalnie 2 razy więcej niż czas podróży bezpośredniej). | |
pickupToDeliveryTimeLimit |
Czas trwania | Maksymalny dozwolony czas od rozpoczęcia odbioru do rozpoczęcia dostawy. | |
shipmentType |
tekst | Klasyfikacja typu używana w przypadku reguł niezgodności i wymagań. | |
VisitRequest(Komponent pickups i deliveries w Shipment) |
arrivalLocation |
obiekt (LatLng) |
Współrzędne geograficzne miejsca przybycia (szerokość i długość geograficzna). |
arrivalWaypoint |
obiekt (Waypoint) |
Lokalizacja, do której pojazd przyjeżdża, aby zrealizować wizytę. Określone przez współrzędne lub identyfikator miejsca. | |
cost |
liczba | Koszt poniesiony, jeśli solver wybierze tę konkretną prośbę o wizytę. | |
departureLocation |
obiekt (LatLng) |
Geograficzna lokalizacja miejsca wylotu jako współrzędne szerokości i długości geograficznej. | |
departureWaypoint |
obiekt (Waypoint) |
Lokalizacja, z której 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. czas załadunku lub rozładunku; | |
label |
tekst | Etykieta zdefiniowana przez użytkownika dla tej konkretnej prośby o wizytę, zwracana w odpowiedzi. | |
loadDemands |
map (key: string, value: Load) |
Wymagania określające zmianę obciążenia podczas tej wizyty (np. -1 w przypadku dostarczenia paczki). | |
tags[] |
tablica ciągów znaków | Tagi dołączone do tej prośby o wizytę. 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 na przybycie na tę wizytę. | |
visitTypes[] |
tablica ciągów znaków | Ciągi znaków opisujące typ wizyty (np. „dostawa”, „instalacja”). Służy do stosowania wartości extraVisitDurationForVisitType z modelu pojazdu. |
|
Vehicle(część ShipmentModel) |
breakRule |
obiekt (BreakRule) |
Określa reguły dotyczące przerw (np. obowiązkowej przerwy na lunch). |
costPerHour |
liczba | Koszt za godzinę łącznego czasu trwania trasy. | |
costPerKilometer |
liczba | Koszt przejechanego kilometra. | |
costPerTraveledHour |
liczba | Koszt za godzinę, gdy pojazd jest w ruchu. | |
endLocation |
obiekt (LatLng) |
Lokalizacja geograficzna punktu końcowego jako współrzędne szerokości i długości geograficznej. | |
endTags[] |
tablica ciągów znaków | Tagi definiujące stan końcowy pojazdu, używane w atrybutach przejścia. | |
endTimeWindows[] |
tablica obiektów (TimeWindow) |
Dozwolone przedziały czasowe, w których pojazd może zakończyć trasę. | |
endWaypoint |
obiekt (Waypoint) |
Geograficzna lokalizacja końcowa określona za pomocą punktu na trasie (współrzędnych lub identyfikatora miejsca). | |
extraVisitDurationForVisitType |
map (key: string, value: Duration) | Wydłuża czas wizyt na podstawie visitType. |
|
fixedCost |
liczba | Stały koszt, który jest naliczany, jeśli pojazd jest używany, niezależnie od odległości lub czasu trwania trasy. | |
ignore |
wartość logiczna (true/false) |
Jeśli true, pojazd jest ignorowany i nie jest używany do optymalizacji. |
|
label |
tekst | Zdefiniowana przez użytkownika etykieta pojazdu zwracana w odpowiedzi. | |
loadLimits |
map (key: string, value: LoadLimit) |
pojemność pojazdów (np. maksymalna waga, maksymalna objętość); | |
routeDistanceLimit |
obiekt (DistanceLimit) |
Sztywny lub elastyczny limit całkowitej odległości trasy pojazdu. | |
routeDurationLimit |
obiekt (DurationLimit) |
Sztywny lub elastyczny limit łącznego czasu trwania trasy pojazdu. | |
routeModifiers |
obiekt (RouteModifiers) |
co najmniej jedno ograniczenie, np. unikanie opłat, autostrad lub promów; | |
startLocation |
obiekt (LatLng) |
Lokalizacja początkowa jako współrzędne szerokości i długości geograficznej. | |
startTags[] |
tablica ciągów znaków | Tagi definiujące stan początkowy pojazdu, używane w atrybutach przejścia. | |
startTimeWindows[] |
tablica obiektów (TimeWindow) |
Dozwolone okna, w których pojazd może rozpocząć trasę. | |
startWaypoint |
obiekt (Waypoint) |
Geograficzna lokalizacja początkowa z użyciem punktu orientacyjnego (współrzędne lub identyfikator miejsca). | |
travelDurationLimit |
obiekt (DurationLimit) |
Twardy lub miękki limit całkowitego czasu podróży pojazdu (z wyłączeniem czasu oczekiwania/obsługi). | |
travelDurationMultiple |
liczba | Mnożnik stosowany do czasu podróży (np. 1,5 oznacza, że podróż jest o 50% wolniejsza). | |
travelMode |
enum (TravelMode) |
Środek transportu (np. DRIVING, WALKING). Wpływa na czas podróży i odległość. |
|
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. Pojazd generuje 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 przypisana do jednego pojazdu.Visit: przystanek na trasie, na którym następuje odbiór lub dostawa.Transition: trasa i czas podróży między 2 przystankami na trasie.AggregatedMetrics: sumaryczne wartości czasu trwania, odległości i innych danych. Ten element może występować zarówno wMetrics, jak iShipmentRoute.
| Ma dzieci | Parametr | Typ obiektu | Opis |
|---|---|---|---|
OptimizeToursResponse |
metrics |
obiekt (Metrics) |
Zbiorcze dane dotyczące rozwiązania, w tym łączny koszt, łączny dystans, łączny czas trwania i liczba użyć pojazdu. |
requestLabel |
tekst | Etykieta skopiowana z pola label żądania. Służy do powiązania odpowiedzi z pierwotnym żądaniem. |
|
routes[] |
tablica obiektów (ShipmentRoute) |
Lista tras obliczonych dla każdego pojazdu. Zawiera wpis dotyczący każdego pojazdu, niezależnie od jego wykorzystania. | |
skippedShipments[] |
tablica obiektów (SkippedShipment) |
Lista przesyłek, które zostały pominięte (nie zostały obsł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 parametr solvingMode został ustawiony na VALIDATE_ONLY lub jeśli podczas rozwiązywania wystąpiły błędy. |
|
Metrics(część OptimizeToursResponse) |
aggregatedRouteMetrics |
obiekt (AggregatedMetrics) |
Zbiorcze statystyki dotyczące wszystkich tras, takie jak łączna odległość, łączny czas trwania i czasy oczekiwania. |
costs |
map (key: string, value: number) | 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 przesyłek. | |
totalCost |
liczba | Łączny koszt rozwiązania, czyli suma wszystkich kosztów tras i kar za pominięte przesyłki. | |
usedVehicleCount |
liczba całkowita | Liczba pojazdów użytych w rozwiązaniu. | |
AggregatedMetrics(część Metrics i ShipmentRoute) |
breakDuration |
Czas trwania | Łączny czas trwania przerw na wszystkich trasach. |
costs |
map (key: string, value: number) | 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 |
map (key: string, value: VehicleLoad) |
Maksymalne obciążenie przewożone przez dowolny pojazd w dowolnym punkcie rozwiązania, z kluczem według typu obciążenia. | |
performedShipmentCount |
liczba całkowita | Łączna liczba dostaw zrealizowanych przez wszystkie pojazdy. | |
skippedMandatoryShipmentCount |
liczba całkowita | Liczba pominiętych obowiązkowych przesyłek. | |
totalCost |
liczba | Łączny koszt rozwiązania, który jest sumą wszystkich kosztów 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ść do przebycia we wszystkich trasach (w metrach). | |
travelDuration |
Czas trwania | Łączny czas podróży na wszystkich trasach. | |
usedVehicleCount |
liczba całkowita | Liczba pojazdów użytych w rozwiązaniu. | |
visitDuration |
Czas trwania | Łączny czas trwania wizyt (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, które pojazd zrobił podczas trasy. |
hasTrafficInfeasibilities |
wartość logiczna (true/false) |
Wskazuje, czy trasa ma jakieś problemy związane z natężeniem ruchu. | |
metrics |
obiekt (AggregatedMetrics) |
Dane dotyczące tej trasy, takie jak całkowita odległość i czas podróży. | |
routeCosts |
map (key: string, value: number) | Zestawienie kosztów na tej trasie. Klucze to typy kosztów (np. „cost_per_hour”), a wartości to kwoty. | |
routePolyline |
obiekt (EncodedPolyline) |
Zakodowana linia łamana reprezentująca pełną ścieżkę trasy pod względem geograficznym. | |
routeTotalCost |
liczba | Łączny koszt trasy, czyli suma wszystkich kosztów na mapie routeCosts. |
|
transitions[] |
tablica obiektów (Transition) |
Lista uporządkowana przejść (etapów podróży) łączących wizyty. | |
vehicleEndTime |
Sygnatura czasowa | Godzina, o której pojazd kończy trasę. | |
vehicleIndex |
liczba całkowita | Indeks pojazdu w źródle ShipmentModel, który realizuje tę trasę. |
|
vehicleLabel |
tekst | Zdefiniowana przez użytkownika etykieta pojazdu skopiowana z modelu żądania. | |
vehicleStartTime |
Sygnatura czasowa | Godzina, o której pojazd rozpoczyna trasę. | |
visits[] |
tablica obiektów (Visit) |
Uporządkowana sekwencja wizyt (odbiorów i dostaw) realizowanych przez pojazd na tej trasie. | |
Visit(część ShipmentRoute) |
detour |
Czas trwania | Dodatkowy czas objazdu związany z tą wizytą w porównaniu z bezpośrednią trasą między poprzednią a następną wizytą. |
isPickup |
wartość logiczna (true/false) |
Jeśli true, ta wizyta to odbiór. Jeśli ma wartość „false”, jest to dostawa. |
|
loadDemands |
map (key: string, value: Load) |
Wymagania dotyczące ładunku spełnione podczas tej wizyty (np. -1 w przypadku dostawy). To jest kopia odpowiednich wymagań dotyczących obciążenia VisitRequest. |
|
shipmentIndex |
liczba całkowita | Indeks pola Shipment w modelu źródłowym, które jest obsługiwane przez tę wizytę. |
|
shipmentLabel |
tekst | Etykieta przesyłki skopiowana z ShipmentModel. |
|
startTime |
Sygnatura czasowa | Godzina, o której ma się rozpocząć wizyta. | |
visitLabel |
tekst | Etykieta prośby o wizytę skopiowana z pola VisitRequest w modelu. |
|
visitRequestIndex |
liczba całkowita | Indeks VisitRequest na liście odbioru lub dostawy przesyłki, której dotyczy ta wizyta. |
|
Transition(część ShipmentRoute) |
breakDuration |
Czas trwania | Czas trwania przerw podczas tej zmiany. |
delayDuration |
Czas trwania | Czas opóźnienia podczas tego przejścia (np. przybycie wcześniej i oczekiwanie na okno czasowe). | |
routePolyline |
obiekt (EncodedPolyline) |
Zakodowana linia łamana reprezentująca ścieżkę tego konkretnego przejścia. | |
routeToken |
tekst | Nieprzezroczysty token, który można przekazać do pakietu SDK nawigacji Google, aby odtworzyć trasę podczas nawigacji. | |
startTime |
Sygnatura czasowa | Czas rozpoczęcia tego przejścia. | |
totalDuration |
Czas trwania | Łączny czas trwania przejścia, w tym podróży, oczekiwania, przerw i opóźnień. | |
trafficInfoUnavailable |
wartość logiczna (true/false) |
Jeśli wartość to true, oznacza to, że dane o ruchu były niedostępne dla tego przejścia. |
|
travelDistanceMeters |
liczba | Odległość przebyta podczas tego przejścia, w metrach. | |
travelDuration |
Czas trwania | Czas trwania podróży podczas tego przejścia. | |
vehicleLoads |
map (key: string, value: VehicleLoad) |
Ładunek przewożony przez pojazd podczas tego przejścia, określony przez typ ładunku (np. „waga”). | |
waitDuration |
Czas trwania | Czas oczekiwania przed rozpoczęciem kolejnej wizyty. |