Wysyła polecenie OptimizeToursRequest
zawierające wartość ShipmentModel
i zwraca wartość OptimizeToursResponse
zawierającą ShipmentRoute
, czyli zbiór tras, które mają zostać wykonane przez pojazdy, które minimalizują całkowity koszt.
Model ShipmentModel
składa się głównie z elementów Shipment
, które należy wykonać, i elementów Vehicle
, które można wykorzystać do transportu elementów Shipment
. Elementy ShipmentRoute
przypisują element Shipment
do elementów Vehicle
. Dokładniej rzecz ujmując, system przypisuje każdemu pojazdowi serię Visit
, gdzie Visit
odpowiada wartości VisitRequest
, która oznacza odbiór lub dostawę w przypadku produktu Shipment
.
Celem jest przypisanie do tych elementów zamówienia wartości ShipmentRoute
, które minimalizują całkowity koszt, przy którym w parametrze ShipmentModel
zdefiniowany jest koszt z wieloma komponentami.Vehicle
Żądanie HTTP
POST https://routeoptimization.googleapis.com/v1/{parent=projects/*}:optimizeTours
Adres URL używa składni transkodowania gRPC.
Parametry ścieżki
Parametry | |
---|---|
parent |
To pole jest wymagane. Aby zadzwonić, wybierz projekt lub lokalizację. Format: * Jeśli nie podasz lokalizacji, region zostanie wybrany automatycznie. |
Treść żądania
Treść żądania zawiera dane o następującej strukturze:
Zapis JSON |
---|
{ "timeout": string, "model": { object ( |
Pola | |
---|---|
timeout |
Jeśli ten limit czasu jest ustawiony, serwer zwraca odpowiedź przed upłynięciem tego limitu lub upłynięciem terminu przez serwer w przypadku żądań synchronicznych (w zależności od tego, co nastąpi wcześniej). W przypadku żądań asynchronicznych serwer wygeneruje rozwiązanie (jeśli będzie to możliwe) przed upływem limitu czasu oczekiwania. Czas trwania w sekundach z maksymalnie 9 cyframi po przecinku, kończącym się cyframi „ |
model |
Model dostawy do rozwiązania. |
solvingMode |
Domyślnie tryb rozwiązywania to |
searchMode |
Tryb wyszukiwania użyty do rozwiązania żądania. |
injectedFirstSolutionRoutes[] |
Wskaż algorytm optymalizacji, aby znaleźć pierwsze rozwiązanie podobne do poprzedniego. Model jest ograniczony na czas tworzenia pierwszego rozwiązania. Przesyłki, które nie zostały wykonane na danej trasie, są domyślnie pomijane przy pierwszym rozwiązaniu, ale mogą być realizowane w ramach kolejnych rozwiązań. Rozwiązanie musi spełniać pewne podstawowe założenia dotyczące poprawności:
Jeśli wstrzykiwane rozwiązanie nie jest możliwe, nie zawsze jest zwracany błąd walidacji, a zamiast tego może zostać zwrócony błąd wskazujący na niewykonalność. |
injectedSolutionConstraint |
Ogranicz algorytm optymalizacji, aby znaleźć rozwiązanie podobne do poprzedniego. W ten sposób można na przykład zablokować fragmenty tras, które zostały już zakończone lub które mają zostać ukończone, ale nie mogą być modyfikowane. Jeśli wstrzykiwane rozwiązanie nie jest możliwe, nie zawsze jest zwracany błąd walidacji, a zamiast tego może zostać zwrócony błąd wskazujący na niewykonalność. |
refreshDetailsRoutes[] |
Jeśli pole nie jest puste, podane trasy zostaną odświeżone bez zmiany pierwotnej sekwencji wizyt lub czasu podróży. Zostaną zaktualizowane tylko inne szczegóły. To nie rozwiąże modelu. Od 11 grudnia 2020 roku ta funkcja wypełni tylko linie łamane w przypadku niepustych tras. Wymaga też, aby atrybut Pola Tego pola nie można używać razem z polami
|
interpretInjectedSolutionsUsingLabels |
Jeśli tak:
Ta interpretacja dotyczy pól Jeśli ma wartość true (prawda), etykiety z następujących kategorii mogą pojawić się w danej kategorii co najwyżej raz:
Jeśli parametr Usunięcie wizyt lub całych tras z wstrzykiwanego rozwiązania może mieć wpływ na domniemane ograniczenia, co może prowadzić do zmian w rozwiązaniu, błędów weryfikacji lub niewykonalności. UWAGA: element wywołujący musi upewnić się, że każdy element |
considerRoadTraffic |
Uwzględnij szacowany ruch przy obliczaniu pól |
populatePolylines |
Jeśli ma wartość prawda, linie łamane w odpowiedzi |
populateTransitionPolylines |
Jeśli ma wartość true, w odpowiedzi |
allowLargeDeadlineDespiteInterruptionRisk |
Jeśli tak, termin przesyłania prośby (patrz https://grpc.io/blog/deadlines) może wynosić maksymalnie 60 minut. W przeciwnym razie maksymalny termin to tylko 30 minut. Żądania długotrwałe wiążą się z znacznie większym (ale nadal niewielkim) ryzykiem zakłóceń w działaniu. |
useGeodesicDistances |
Jeśli ma wartość prawda, odległości będą obliczane na podstawie odległości geodezyjnych, a nie Map Google, a czasy podróży będą obliczane na podstawie odległości geodezyjnych z prędkością określoną przez |
label |
Etykieta, która może zostać użyta do zidentyfikowania tego żądania, zgłoszona w |
geodesicMetersPerSecond |
Jeśli |
maxValidationErrors |
Skraca liczbę zwróconych błędów weryfikacji. Te błędy są zwykle dołączone do ładunku błędu INVALID_ARGUMENT jako szczegółowa informacja o błędzie BadRequest (https://cloud.google.com/apis/design/errors#error_details), chyba że resolutionMode=VALIDATE_ONLY: zapoznaj się z polem |
Treść odpowiedzi
W przypadku powodzenia treść odpowiedzi obejmuje wystąpienie elementu OptimizeToursResponse
.
Zakresy autoryzacji
Wymaga następującego zakresu OAuth:
https://www.googleapis.com/auth/cloud-platform