Method: computeCustomRoutes

Biorąc pod uwagę zestaw końcowych i pośrednich punktów na trasie oraz cel trasy, oblicza najlepszą trasę dla tej trasy. Zwraca także najszybszą trasę i najkrótszą trasę jako trasy referencyjne.

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 odległościami, czasami trwania, tokenem i informacjami o opłatach: X-Goog-FieldMask: routes.route.distanceMeters,routes.route.duration,routes.token,routes.route.travelAdvisory.tollInfo

Google odradza korzystanie z 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: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)

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. Obecnie obsługiwany jest tylko DYSK.

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".

routeModifiers

object (RouteModifiers)

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

routeObjective

object (RouteObjective)

To pole jest wymagane. Cel trasy, pod którego kątem należy optymalizować kampanię.

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.

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 protokołu OAuth 2.0.