Method: computeCustomRoutes

Na podstawie zestawu punktów docelowych i punktów pośrednich oraz celu trasy oblicza najlepszą trasę dla tego celu. Zwraca również najszybszą i najkrótszą trasę jako trasy referencyjne.

UWAGA: ta metoda wymaga podania w danych wejściowych maski pola odpowiedzi. 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ść to lista ścieżek pól rozdzielonych przecinkami. Zapoznaj się ze szczegółową dokumentacją tworzenia ścieżek pól.

Na przykład w tej metodzie:

  • Maska pól wszystkich dostępnych pól (do ręcznej kontroli): X-Goog-FieldMask: *
  • Maska pola odległości, czasu trwania, tokena i informacji o opłatach za przejazd: X-Goog-FieldMask: routes.route.distanceMeters,routes.route.duration,routes.token,routes.route.travelAdvisory.tollInfo

Nie zalecamy używania 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 wynik z mniejszym opóźnieniem.
  • 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 to może wydłużyć czas obliczeń. Jeśli wybierzesz wszystkie pola lub wszystkie pola na najwyższym poziomie, może to spowodować pogorszenie wydajności, ponieważ każde nowe pole, które dodamy, będzie automatycznie uwzględniane w odpowiedzi.
  • Wybranie tylko potrzebnych pól powoduje mniejszy rozmiar odpowiedzi, a co za tym idzie, większą przepustowość sieci.

Żądanie HTTP

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

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,
  "routeModifiers": {
    object (RouteModifiers)
  },
  "routeObjective": {
    object (RouteObjective)
  },
  "languageCode": string,
  "units": enum (Units)
}
Pola
origin

object (Waypoint)

Wymagane. Punkt pośredni na trasie.

destination

object (Waypoint)

Wymagane. Punkt docelowy.

intermediates[]

object (Waypoint)

Opcjonalnie: zestaw punktów pośrednich na trasie (z wyłączeniem punktów końcowych) do zatrzymania się lub przejazdu obok; Obsługiwane jest maksymalnie 25 pośrednich punktów pośrednich.

travelMode

enum (RouteTravelMode)

Opcjonalnie: Określa środek transportu. Obsługiwane są tylko wartości DRIVE i „TWO_WHEELER”.

routingPreference

enum (RoutingPreference)

Opcjonalnie: Określa sposób obliczania trasy. Serwer próbuje użyć wybranego ustawienia routingu do obliczenia trasy. Jeśli preferencja routingu powoduje błąd lub wydłuża czas oczekiwania, zwracany jest błąd. 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 wieloboku.

departureTime

string (Timestamp format)

Opcjonalnie: Godzina wyjazdu. Jeśli nie ustawisz tej wartości, zostanie ona domyślnie ustawiona na czas wysłania żądania. Jeśli ustawisz tę wartość na czas, który już minął, żądanie zakończy się niepowodzeniem.

Sygnatura czasowa w formacie UTC „Zulu” zdefiniowanym w dokumencie RFC 3339, z dokładnością do nanosekund i maksymalnie 9 miejsc po przecinku. Przykłady: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z".

routeModifiers

object (RouteModifiers)

Opcjonalnie: Zestaw warunków, które należy spełnić, a które wpływają na sposób obliczania tras.

routeObjective

object (RouteObjective)

Wymagane. Trasa, pod kątem której chcesz prowadzić optymalizację.

languageCode

string

Opcjonalnie: Kod języka BCP-47, na przykład „en-US” lub „sr-Latn”. Więcej informacji znajdziesz w sekcji Identyfikator języka Unicode. 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 zostanie wywnioskowany na podstawie lokalizacji żądania trasy.

units

enum (Units)

Opcjonalnie: Określa jednostki miary dla pól wyświetlania. Obejmuje to pole instructionNavigationInstruction. 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 zostaną wywnioskowane na podstawie lokalizacji żądania.

Treść odpowiedzi

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

Zakresy autoryzacji

Wymaga następującego zakresu OAuth:

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

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