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/v1alpha:computeCustomRoutes
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 |
To pole jest wymagane. Punkt na trasie początkowy. |
destination |
To pole jest wymagane. Docelowy punkt na trasie. |
intermediates[] |
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 |
Opcjonalnie. Określa środek transportu. Obecnie obsługiwany jest tylko DYSK. |
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 |
polylineQuality |
Opcjonalnie. Określa preferencje dotyczące 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 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: |
routeModifiers |
Opcjonalnie. Zestaw warunków, które mają wpływ na sposób obliczania tras. |
routeObjective |
To pole jest wymagane. Cel trasy, pod którego kątem należy optymalizować kampanię. |
languageCode |
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 |
Opcjonalnie. Określa jednostki miary wyświetlane w polach wyświetlania. Dotyczy to też pola |
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.