Method: computeRoutes

Zwraca trasę podstawową wraz z opcjonalnymi trasami alternatywnymi z uwzględnieniem zestawu terminali i pośrednich punktów na trasie.

UWAGA: ta metoda wymaga określenia maski pola odpowiedzi w danych wejściowych. Maską pola odpowiedzi możesz podać za pomocą parametru URL $fields lub fields albo nagłówka HTTP/gRPC X-Goog-FieldMask (zobacz dostępne parametry i nagłówki adresu URL). Wartość jest rozdzielaną przecinkami listą ścieżek pól. Zapoznaj się ze szczegółową dokumentacją tworzenia ścieżek pól.

Na przykład w tej metodzie:

  • Maska pola wszystkich dostępnych pól (do kontroli ręcznej): X-Goog-FieldMask: *
  • Maska pola z czasem trwania, odległością i linią łamaną na poziomie trasy (przykładowa konfiguracja produkcyjna): X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline

Odradzamy stosowanie maski pola odpowiedzi z symbolem wieloznacznym (*) i określanie maski pola na najwyższym poziomie (routes), ponieważ:

  • Zaznaczenie tylko tych pól, które są Ci potrzebne, pomaga naszemu serwerowi skrócić cykle obliczeniowe, a tym samym zwrócić Ci wynik z mniejszym czasem oczekiwania.
  • Wybór tylko tych pól, których potrzebujesz w zadaniu produkcyjnym, zapewnia stabilny czas oczekiwania. W przyszłości możemy dodać więcej pól odpowiedzi i te nowe pola mogą wymagać więcej czasu na obliczenia. Jeśli wybierzesz wszystkie pola lub wszystkie pola na najwyższym poziomie, może nastąpić spadek wydajności, ponieważ każde nowe pole, które dodajemy, będzie automatycznie uwzględniane w odpowiedzi.
  • Wybranie tylko tych pól, które są Ci potrzebne, spowoduje zmniejszenie rozmiaru odpowiedzi i większą przepustowość sieci.

Żądanie HTTP

POST https://routespreferred.googleapis.com/v1:computeRoutes

Adres URL używa składni transkodowania gRPC.

Treść żądania

Treść żądania zawiera dane o następującej strukturze:

Zapis JSON
{
  "origin": {
    object (Waypoint)
  },
  "destination": {
    object (Waypoint)
  },
  "intermediates": [
    {
      object (Waypoint)
    }
  ],
  "travelMode": enum (RouteTravelMode),
  "routingPreference": enum (RoutingPreference),
  "polylineQuality": enum (PolylineQuality),
  "polylineEncoding": enum (PolylineEncoding),
  "departureTime": string,
  "computeAlternativeRoutes": boolean,
  "routeModifiers": {
    object (RouteModifiers)
  },
  "languageCode": string,
  "units": enum (Units),
  "optimizeWaypointOrder": boolean
}
Pola
origin

object (Waypoint)

To pole jest wymagane. Punkt na trasie początkowy.

destination

object (Waypoint)

To pole jest wymagane. Docelowy punkt na trasie.

intermediates[]

object (Waypoint)

Opcjonalnie. Zestaw punktów pośrednich na trasie (bez punktów końcowych) do zatrzymania się lub przejechania. Obsługiwanych jest do 25 pośrednich punktów pośrednich.

travelMode

enum (RouteTravelMode)

Opcjonalnie. Określa środek transportu.

routingPreference

enum (RoutingPreference)

Opcjonalnie. Określa sposób obliczania trasy. Serwer próbuje użyć wybranych preferencji routingu do obliczenia trasy. Jeśli ustawienie routingu skutkuje błędem lub bardzo długim czasem oczekiwania, zwracany jest błąd. W przyszłości możemy wdrożyć mechanizm zastępczego, aby użyć innej opcji, jeśli preferowana opcja nie daje prawidłowego wyniku. Możesz określić tę opcję tylko wtedy, gdy travelMode ma wartość DRIVE lub TWO_WHEELER. W przeciwnym razie żądanie nie powiedzie się.

polylineQuality

enum (PolylineQuality)

Opcjonalnie. Określa preferencje dotyczące jakości linii łamanej.

polylineEncoding

enum (PolylineEncoding)

Opcjonalnie. Określa preferowane kodowanie linii łamanej.

departureTime

string (Timestamp format)

Opcjonalnie. Godzina odjazdu. Jeśli nie ustawisz tej wartości, domyślnie zostanie użyta godzina przesłania żądania. Jeśli ustawisz tę wartość na czas, który już występuje, żądanie nie powiedzie się.

Sygnatura czasowa w formacie RFC3339 UTC „Zulu”, z rozdzielczością nanosekundy i maksymalnie 9 cyframi po przecinku. Przykłady: "2014-10-02T15:01:23Z" i "2014-10-02T15:01:23.045123456Z".

computeAlternativeRoutes

boolean

Określa, czy oprócz trasy mają być obliczane trasy alternatywne.

routeModifiers

object (RouteModifiers)

Opcjonalnie. Zestaw warunków, które mają wpływ na sposób obliczania tras.

languageCode

string

Opcjonalnie. Kod języka BCP-47, np. „en-US” lub „sr-Latn”. Więcej informacji znajdziesz na stronie http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. Listę obsługiwanych języków znajdziesz w sekcji Obsługa języków. Jeśli nie podasz tej wartości, język wyświetlania będzie określany na podstawie lokalizacji żądania trasy.

units

enum (Units)

Opcjonalnie. Określa jednostki miary wyświetlane w polach wyświetlania. Dotyczy to też pola instruction w NavigationInstruction. Nie ma wpływu na jednostki miary używane dla trasy, kroku, odległości kroków ani czasu trwania. Jeśli nie podasz tej wartości, wyświetlane jednostki będą ustalane na podstawie lokalizacji żądania.

optimizeWaypointOrder

boolean

Jeśli parametr OptimizeWaypointOrder ma wartość true (prawda), podejmowana jest próba zmiany kolejności określonych pośrednich punktów pośrednich w celu zminimalizowania ogólnego kosztu trasy. Jeśli którykolwiek z pośrednich punktów pośrednich prowadzi przez punkt pośredni, żądanie kończy się niepowodzeniem. Użyj ComputeRoutesResponse.Routes.Optimized_and_waypoint_index, aby znaleźć nową kolejność. Jeśli w nagłówku X-Goog-FieldMask nie zażądano adresu tras.Optimized_ wszelkich pośrednich_waypoint_index, żądanie nie powiedzie się. Jeśli parametr OptimizeWaypointOrder ma wartość false (fałsz), komponent ComputeRoutesResponse.Optimized_directed_waypoint_index jest pusty.

Treść odpowiedzi

W przypadku powodzenia treść odpowiedzi obejmuje wystąpienie elementu ComputeRoutesResponse.

Zakresy autoryzacji

Wymaga następującego zakresu OAuth:

  • https://www.googleapis.com/auth/maps-platform.routespreferred

Więcej informacji znajdziesz w artykule Omówienie protokołu OAuth 2.0.