Wyznaczanie tras dla dużych pojazdów

Routing dla pojazdów wielkogabarytowych to zestaw właściwości, które pozwalają optymalizować trasy floty pod kątem pojazdów wielkogabarytowych przez określenie wymiarów fizycznych, wagi i liczby przyczep. Interfejs API używa tych atrybutów do obliczania możliwych tras, które omijają drogi z ograniczeniami, niskie mosty lub trasy z ograniczeniami wagi.

Dzięki routingowi dla pojazdów wielkogabarytowych możesz rozwiązywać problemy logistyczne floty związane z pojazdami ciężkimi i wielkogabarytowymi, na przykład:

  • Unikanie zagrożeń na drodze: generowanie planów tras, które kierują pojazdy z dala od niskich przejazdów, dróg z ograniczeniami wagi i innych zagrożeń fizycznych.
  • Określanie szczegółowych informacji o pojeździe: uwzględnianie dokładnych wymiarów, masy całkowitej, liczby osi i konfiguracji przyczep w planach tras dla całej floty.
  • Ulepszanie planowania dla całej floty: tworzenie wydajnych planów tras dla całej floty ciężarówek przy jednoczesnym zapewnieniu, że wszystkie zadania są zgodne z fizycznymi ograniczeniami drogowymi.
  • Włączanie nawigacji krok po kroku: generowanie tokenów trasy dla zoptymalizowanych tras floty i przekazywanie ich do Navigation SDK, aby prowadzić kierowców za pomocą nawigacji dostosowanej do pojazdów wielkogabarytowych.

Ograniczenia

Zanim zaczniesz, musisz zapoznać się z tymi ograniczeniami i wymaganiami.

  • Dostępność geograficzna: routing dla pojazdów wielkogabarytowych jest dostępny tylko w 48 sąsiadujących ze sobą stanach USA.
  • Informacje dla kierowców i bezpieczeństwo: kierowcy nie mogą polegać wyłącznie na trasach zwracanych przez ten interfejs API, aby zapewnić bezpieczeństwo lub zgodność z przepisami. Nie ma gwarancji, że trasy będą odpowiednie dla pojazdu, a ich pokonywanie może narażać kierowców na zagrożenia, takie jak niskie mosty lub drogi, na których obowiązuje zakaz wjazdu pojazdów wielkogabarytowych.
  • Trasy w trybie możliwie najlepszej obsługi: w niektórych przypadkach interfejs API nie może znaleźć trasy, która w pełni spełnia ograniczenia dotyczące podróży. Zamiast tego zwraca trasę w trybie „możliwie najlepszej obsługi”, która może przebiegać przez obszary objęte ograniczeniami.
  • Nieobsługiwane funkcje: routing dla pojazdów wielkogabarytowych nie obsługuje tych funkcji:
    • opłaty za przejazd ciężarówką;
    • ograniczenia prędkości;
    • routing dla radioaktywnych materiałów niebezpiecznych.
  • Rozliczenia: Google rozlicza wszystkie żądania optimizeTours w jednolity sposób, niezależnie od tego, czy żądania konfigurują właściwości routingu dla pojazdów wielkogabarytowych.
  • Trasy długodystansowe: trasy długodystansowe dla ciężarówek o długości 500 km lub większej wymagają więcej czasu na obliczenia niż krótsze trasy i mogą zwracać dane o trasie niższej jakości. Aby zachować jakość trasy, ogranicz odległości między przesyłkami, lokalizacjami początkowymi pojazdów i lokalizacjami końcowymi pojazdów. Jeśli potrzebujesz długich tras, zwiększ terminy realizacji żądań, aby zmniejszyć prawdopodobieństwo wystąpienia błędów DEADLINE_EXCEEDED.

Właściwości

Aby korzystać z właściwości routingu dla pojazdów wielkogabarytowych, musisz skonfigurować pojazd z jego wymiarami fizycznymi i ustawić tryb routingu na ciężarówkę.

W tej tabeli znajdziesz właściwości najwyższego poziomu służące do konfigurowania routingu dla pojazdów wielkogabarytowych:

Właściwość Typ Wymaganie Opis
travelMode tekst Wymagane Określa tryb podróży pojazdu. Aby włączyć właściwości routingu dla pojazdów wielkogabarytowych, ustaw tę wartość na TRUCK.
routeModifiers obiekt Wymagane Zawiera konfiguracje specyficzne dla trasy, w tym vehicleInfo.

vehicleInfo

Obiekt vehicleInfo zawiera specyfikację fizyczną pojazdu. Zdefiniuj ten obiekt we właściwości routeModifiers. Jeśli ustawisz travelMode na TRUCK, musisz podać obiekt vehicleInfo.

W tej tabeli znajdziesz właściwości dostępne w vehicleInfo obiekcie:

Właściwość Typ Wymaganie Opis
totalHeightMm liczba całkowita Wymagane Określa całkowitą wysokość pojazdu w milimetrach. Ta wartość musi być dodatnią liczbą całkowitą.
totalWidthMm liczba całkowita Wymagane Określa całkowitą szerokość pojazdu w milimetrach. Ta wartość musi być dodatnią liczbą całkowitą.
totalWeightKg liczba całkowita Wymagane Określa całkowitą masę pojazdu w kilogramach. Ta wartość musi być dodatnią liczbą całkowitą.
totalLengthMm liczba całkowita Wymagane Określa całkowitą długość pojazdu w milimetrach. Ta wartość musi być dodatnią liczbą całkowitą.
trailerInfo tablica Opcjonalny Zawiera tablicę specyfikacji przyczep, która obejmuje właściwość lengthMm określającą długość każdej przyczepy w milimetrach.
totalAxleCount liczba całkowita Wymagane Określa łączną liczbę osi w pojeździe. Ta wartość musi być liczbą całkowitą większą lub równą 2.

Przykłady

Ta sekcja zawiera 2 rodzaje przykładów:

Przykładowy kod

Ten przykład pokazuje strukturę właściwości używanych w routingu dla pojazdów wielkogabarytowych:

"vehicles": [
  {
    "travelMode": "TRUCK",
    "routeModifiers": {
      "vehicleInfo": {
        "totalHeightMm": TOTAL_HEIGHT_MM,
        "totalWidthMm": TOTAL_WIDTH_MM,
        "totalWeightKg": TOTAL_WEIGHT_KG,
        "totalLengthMm": TOTAL_LENGTH_MM,
        "trailerInfo": [
          {
            "lengthMm": TRAILER_LENGTH_MM
          }
        ],
        "totalAxleCount": TOTAL_AXLE_COUNT
      }
    }
  }
]

Przykładowe żądanie

Ten przykład pokazuje strukturę podstawowego optimizeTours żądania zawierającego routing dla pojazdów wielkogabarytowych:

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 40.953523,
              "longitude": -72.2277846
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 40.9546673,
              "longitude": -72.2580151
            }
          }
        ]
      }
    ],
    "vehicles": [
      {
        "travelMode": "TRUCK",
        "routeModifiers": {
          "vehicleInfo": {
            "totalHeightMm": 4000,
            "totalWidthMm": 2500,
            "totalWeightKg": 9000,
            "totalLengthMm": 20000,
            "trailerInfo": [
              {
                "lengthMm": 15000
              }
            ],
            "totalAxleCount": 5
          }
        },
        "costPerKilometer": 1.0
      }
    ]
  }
}

Co dalej?

  • Udostępnianie nawigacji krok po kroku: dowiedz się, jak przekazywać routeToken zwracany dla każdego przejścia do Navigation SDK na Android lub iOS.
  • Generowanie linii łamanych przejść i tokenów trasy: dowiedz się, jak wysyłać żądania tokenów trasy za pomocą populateTransitionPolylines w Linii łamanych przejść i tokenów trasy.
  • Dokumentacja API: zobacz pełną listę pól w dokumentacji optimizeTours.