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 ( |
Pola | |
---|---|
origin |
Wymagane. Punkt pośredni na trasie. |
destination |
Wymagane. Docelowy punkt na trasie. |
intermediates[] |
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 |
Opcjonalnie: Określa środek transportu. |
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 |
polylineQuality |
Opcjonalnie: Określa preferencję dotyczącą jakości linii łamanej. |
polylineEncoding |
Opcjonalnie: Określa preferowane kodowanie linii łamanej. |
departureTime |
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: |
computeAlternativeRoutes |
Określa, czy oprócz trasy obliczać trasy alternatywne. |
routeModifiers |
Opcjonalnie: Zestaw warunków, które wpływają na sposób obliczania tras. |
languageCode |
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 |
Opcjonalnie: Określa jednostki miary dla pól wyświetlanych. Obejmuje to pole |
optimizeWaypointOrder |
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 |
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.