Wysyła OptimizeToursRequest zawierający 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 Shipmentzasobów, które mają zostać wykonane, oraz Vehicleelementów, które można wykorzystać do transportu Shipment. ShipmentRoute przypisuje Shipment do 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 przypisanie ShipmentRoute do Vehicle, które minimalizuje łączny koszt, gdzie koszt ma wiele komponentów zdefiniowanych w ShipmentModel.
Żądanie HTTP
POST https://routeoptimization.googleapis.com/v1/{parent=projects/*/locations/*}: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 to możliwe) przed upływem limitu czasu. Czas trwania w sekundach składający się z maksymalnie dziewięciu 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 algorytmu optymalizacji w znalezieniu pierwszego rozwiązania podobnego do poprzedniego. Model jest ograniczony podczas tworzenia pierwszego rozwiązania. 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ć podstawowe założenia dotyczące ważnoś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 |
Ograniczenie algorytmu optymalizacji do znalezienia ostatecznego rozwiązania podobnego 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 nie jest pusty, dane trasy zostaną odświeżone bez zmiany ich sekwencji wizyt lub czasu podróży: zostaną zaktualizowane tylko inne szczegóły. Nie rozwiązuje to problemów z modelem. Od listopada 2020 r. ta opcja wypełnia tylko linie wielokątów na niepustych trasach i wymaga, aby parametr 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 poniższych kategorii mogą pojawić się w danej kategorii co najwyżej raz:
Jeśli Usunięcie wizyt na trasie lub całych tras z wstrzykniętego rozwiązania może mieć wpływ na implikowane ograniczenia, co może spowodować zmianę rozwiązania, błędy walidacji lub niemożliwość jego wykonania. UWAGA: rozmówca musi upewnić się, że każde |
considerRoadTraffic |
Przy obliczaniu wartości 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 opcja jest ustawiona, żądanie może mieć termin (patrz https://grpc.io/blog/deadlines) do 60 minut. W przeciwnym razie maksymalny termin to tylko 30 minut. Pamiętaj, że w przypadku długotrwałych żądań występuje znacznie większe (choć nadal niewielkie) ryzyko przerwania. |
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 |
Obcina zwracaną liczbę błędów weryfikacji. Błędy te są zwykle dołączone do ładunku błędu Błędn_AR jako szczegółowe informacje o błędzie BadRequest (https://cloud.google.com/apis/design/errors#error_details), chyba że przy użyciu funkcji abilitiesMode=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ń uprawnień w zasobie parent:
routeoptimization.locations.use
Więcej informacji znajdziesz w dokumentacji usługi IAM.