Method: computeRoutes

Zwraca trasę podstawową wraz z opcjonalnymi trasami alternatywnymi ze względu na zbiór terminali i pośrednich punktów pośrednich.

UWAGA: ta metoda wymaga określenia maski pola odpowiedzi w danych wejściowych. Maską pola odpowiedzi możesz podać, używając parametru adresu URL $fields lub fields albo nagłówka HTTP/gRPC X-Goog-FieldMask (zobacz dostępne parametry i nagłówki adresu URL. Wartość ma postać listy rozdzielonych przecinkami ś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 sprawdzenia ręcznego): X-Goog-FieldMask: *
  • Maska pola z czasem trwania na poziomie trasy, odległością i linią łamaną (przykładowa konfiguracja produkcyjna): X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline

Google odradza korzystanie z maski pola odpowiedzi z symbolem wieloznacznym (*) ani określania maski pola na najwyższym poziomie (routes), ponieważ:

  • Wybranie tylko tych pól, których potrzebujesz, pomaga naszemu serwerowi oszczędzać cykle obliczeniowe, dzięki czemu możemy zwrócić Ci wyniki z krótszym czasem oczekiwania.
  • Wybór tylko tych pól, które są potrzebne w zadaniu produkcyjnym, zapewnia stabilną wydajność opóźnień. W przyszłości możemy dodać więcej pól odpowiedzi, a te nowe pola mogą wymagać dłuższego czasu na obliczenia. Jeśli wybierzesz wszystkie pola lub wszystkie pola na najwyższym poziomie, wydajność może się zmniejszyć, ponieważ nowe pola, które dodamy, będą automatycznie uwzględniane w odpowiedzi.
  • Jeśli wybierzesz tylko te pola, których potrzebujesz, rozmiar odpowiedzi będzie mniejszy, a tym samym większa 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)

Wymagane. Punkt pośredni na trasie.

destination

object (Waypoint)

Wymagane. Docelowy punkt na trasie.

intermediates[]

object (Waypoint)

Opcjonalnie: Zestaw punktów na trasie (z wyłączeniem punktów końcowych) do zatrzymania się na lub przejechania. Obsługiwane jest maksymalnie 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ć wybranego ustawienia routingu do obliczenia trasy. Jeśli ustawienie routingu powoduje błąd lub bardzo długie opóźnienie, zwracany jest błąd. W przyszłości możemy wdrożyć mechanizm zastępczy, aby używać innej opcji, gdy preferowana opcja nie zapewnia prawidłowego wyniku. Tę opcję możesz określić tylko wtedy, gdy travelMode ma wartość DRIVE lub TWO_WHEELER. W przeciwnym razie żądanie nie zostanie zrealizowane.

polylineQuality

enum (PolylineQuality)

Opcjonalnie: Określa preferencję dotyczącą 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 będzie przyjęta data przesłania żądania. Jeśli ustawisz tę wartość na czas, który już minął, żądanie zakończy się niepowodzeniem.

Sygnatura czasowa w RFC3339 UTC „Zulu” z rozdzielczością nanosekundową 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 obliczać trasy alternatywne.

routeModifiers

object (RouteModifiers)

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

languageCode

string

Opcjonalnie: Kod języka BCP-47, na przykład „en-US”. czy „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 ustalany na podstawie lokalizacji żądania trasy.

units

enum (Units)

Opcjonalnie: Określa jednostki miary dla pól wyświetlanych. Obejmuje to pole instruction w elemencie NavigationInstruction. Ta wartość nie ma wpływu na jednostki miary stosowane dla trasy, odcinka, dystansu ani czasu trwania. Jeśli nie podasz tej wartości, wyświetlane jednostki są ustalane na podstawie lokalizacji żądania.

optimizeWaypointOrder

boolean

Jeśli parametr OptimizeWaypointOrder ma wartość true (prawda), podejmuje się próbę zmiany kolejności określonych pośrednich punktów pośrednich w celu zminimalizowania całkowitego kosztu trasy. Jeśli dowolny z pośrednich punktów pośrednich jest punkt pośredni, żądanie nie powiedzie się. Użyj ComputeRoutesResponse.Routes.Optimized_average_waypoint_index, aby znaleźć nowe sortowanie. Jeśli w nagłówku X-Goog-FieldMask nie jest wysyłane żądanie addresses.Optimized_average_waypoint_index, żądanie zakończy się niepowodzeniem. Jeśli parametr OptimizeWaypointOrder ma wartość false (fałsz), parametr ComputeRoutesResponse.Optimized_average_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.