Wysyła OptimizeToursRequest
z ShipmentModel
i zwraca OptimizeToursResponse
zawierający ShipmentRoute
, czyli zestaw tras, które mają wykonać pojazdy minimalizujące całkowity koszt.
Model ShipmentModel
składa się głównie z Shipment
zasobów, które mają zostać wykonane, oraz Vehicle
elementów, które można wykorzystać do transportu Shipment
. Elementy typu ShipmentRoute
przypiszą elementy Shipment
do elementów Vehicle
. Dokładniej rzecz ujmując, do każdego pojazdu przypisywane są ciągi Visit
, gdzie Visit
odpowiada elementowi VisitRequest
oznaczającemu odbiór lub dostawę w przypadku Shipment
.
Celem jest przydzielenie zasobów typu ShipmentRoute
do elementów typu Vehicle
, co minimalizuje całkowity koszt, gdy koszt ma wiele komponentów zdefiniowanych w tabeli ShipmentModel
.
Żądanie HTTP
POST https://routeoptimization.googleapis.com/v1/{parent=projects/*}:optimizeTours
Adres URL używa składni transkodowania gRPC.
Parametry ścieżki
Parametry | |
---|---|
parent |
Wymagane. Wybierz docelowy projekt lub lokalizację, aby zadzwonić. 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 czas oczekiwania jest ustawiony, serwer zwraca odpowiedź przed upłynięciem limitu czasu lub upłynięciem terminu dla żą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 czasu oczekiwania. Czas trwania w sekundach składający się z maksymalnie 9 cyfr po przecinku i kończący się „ |
model |
Model dostawy do rozwiązania. |
solvingMode |
Domyślnie ustawiony jest tryb zadań |
searchMode |
Tryb wyszukiwania użyty do rozwiązania żądania. |
injectedFirstSolutionRoutes[] |
Pomaganie algorytmowi optymalizacji w znalezieniu pierwszego rozwiązania podobnego do poprzedniego. Podczas tworzenia pierwszego rozwiązania model jest ograniczony. Przesyłki, które nie zostały wykonane na danej trasie, są domyślnie pominięte w pierwszym rozwiązaniu, ale można je realizować w kolejnych rozwiązaniach. Rozwiązanie musi spełniać pewne podstawowe założenia dotyczące poprawności:
Jeśli wstrzyknięte rozwiązanie nie jest możliwe, błąd weryfikacji nie musi być zwracany i zamiast niego może pojawić się błąd wskazujący na niewykonalność. |
injectedSolutionConstraint |
Ogranicz algorytm optymalizacji, aby znaleźć ostateczne rozwiązanie podobne do poprzedniego. Na przykład tej opcji można użyć do zablokowania części tras, które zostały już zakończone lub są jeszcze zakończone, ale nie można ich modyfikować. Jeśli wstrzyknięte rozwiązanie nie jest możliwe, błąd weryfikacji nie musi być zwracany i zamiast niego może pojawić się błąd wskazujący na niewykonalność. |
refreshDetailsRoutes[] |
Jeśli pole nie jest puste, podane trasy zostaną odświeżone bez zmiany bazowej sekwencji wizyt czy czasów podróży. Zostaną zaktualizowane tylko inne szczegóły. Nie rozwiązuje to problemów z modelem. Od 2020 roku wypełnia tylko linie łamane niepustych tras i wymaga, aby atrybut Pola Tego pola nie można używać razem z polami
|
interpretInjectedSolutionsUsingLabels |
Jeśli ma wartość prawda:
Ta interpretacja ma zastosowanie do pól Jeśli wartość to prawda, etykiety z tych kategorii mogą pojawić się w danej kategorii co najwyżej raz:
Jeśli wartość Usunięcie wizyt na trasie lub całych tras z wstrzykiwanego rozwiązania może mieć wpływ na domniemane ograniczenia, co może prowadzić do zmiany rozwiązania, błędów weryfikacji lub niewykonalności. UWAGA: rozmówca musi upewnić się, że każde |
considerRoadTraffic |
Przy obliczaniu obliczania pól |
populatePolylines |
Jeśli ma wartość prawda, linie łamane będą wypełniane w odpowiedzi |
populateTransitionPolylines |
Jeśli ma wartość prawda, linie łamane zostaną wypełnione w odpowiedzi |
allowLargeDeadlineDespiteInterruptionRisk |
Jeśli ta wartość jest ustawiona, termin żądania (patrz https://grpc.io/blog/deadlines) może wynosić maksymalnie 60 minut. W przeciwnym razie maksymalny termin to tylko 30 minut. Pamiętaj, że żądania długotrwałe wiążą się ze znacznie większym (ale i mniejszym) ryzykiem przerw w działaniu. |
useGeodesicDistances |
Jeśli wartość to prawda, odległości będą obliczane na podstawie odległości geodezyjnych zamiast z 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 pozwala zidentyfikować to żądanie. Zostanie ona zgłoszona w |
geodesicMetersPerSecond |
Jeśli |
maxValidationErrors |
Skraca liczbę zwróconych błędów weryfikacji. Błędy te są zwykle dołączone do ładunku błędu Błędn_AR jako szczegóły błędu BadRequest (https://cloud.google.com/apis/design/errors#error_details), chyba że fulfillmentMode=VALIDATE_ONLY: zobacz pole |
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
Uprawnienia
Wymaga tych uprawnień IAM w zasobie parent
:
routeoptimization.locations.use
Więcej informacji znajdziesz w dokumentacji uprawnień.