Wyznaczanie tras

Narzędzie compute_routes zwraca trasę między miejscem początkowym a docelowym dla danego środka transportu. Odpowiedź zawiera odległość i czas trwania trasy. Domyślnie trasy są obliczane bez uwzględniania informacji o aktualnym natężeniu ruchu. Pro dodaje wyznaczanie tras, które uwzględnia natężenie ruchu w czasie rzeczywistym i trasy z większą liczbą przystanków pośrednich.

Możesz wywołać compute_routes przez serwer MCP lub jako metodę REST computeRoutes. Na tej stronie opisujemy opcje żądania, w tym opcje Pro, zawartość odpowiedzi oraz sposób naliczania opłat za żądania. Pełne schematy znajdziesz w dokumentacji compute_routes MCP i dokumentacji computeRoutes REST.

Opcje żądania

W tabeli poniżej opisano opcje żądania dla compute_routes:

Opcja Opis
origin, destination Wymagane. Każdy z nich jest punktem pośrednim: address (adres zrozumiały dla człowieka lub plus code), place_id lub lat_lng. Możesz mieszać formaty – na przykład adres jako miejsce początkowe i identyfikator miejsca jako miejsce docelowe.
travel_mode Środek transportu: DRIVE (domyślny), WALK, BICYCLE lub TRANSIT. Trasy WALK są w wersji beta i czasami mogą nie obejmować chodników ani ścieżek dla pieszych. Musisz wyświetlać to ostrzeżenie użytkownikowi w przypadku wszystkich tras pieszych, które wyświetlasz w aplikacji.
routing_preference Sposób wykorzystania danych o ruchu do obliczania trasy: ROUTING_PREFERENCE_TRAFFIC_UNAWARE (domyślnie) lub ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL, czyli opcja Pro. ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL nie jest obsługiwany w przypadku WALK ani BICYCLE. Zobacz Wyznaczanie trasy z uwzględnieniem natężenia ruchu.
intermediate_waypoints Uporządkowane przystanki między miejscem początkowym a docelowym. Trasa przebiega przez nie w podanej kolejności. Żądanie może zawierać do 10 punktów pośrednich lub od 11 do 25 w ramach opcji Pro. Żądanie z więcej niż 25 elementami zwraca błąd INVALID_ARGUMENT. Trasy transportu publicznego nie obsługują punktów pośrednich.
departure_time lub arrival_time Kiedy wyjechać z miejsca początkowego lub przyjechać do miejsca docelowego (sygnatura czasowa RFC 3339). Ustaw maksymalnie 1 wartość. Domyślnie jest to bieżąca godzina. W przypadku TRANSIT czas może wynosić do 7 dni w przeszłości lub 100 dni w przyszłości. W przypadku innych środków transportu czas nie może być w przeszłości i może być ustawiony maksymalnie na 365 dni do przodu.
compute_alternative_routes Gdy parametr ma wartość true, odpowiedź zawiera alternatywne trasy oprócz zalecanej, jeśli są dostępne. Domyślna wartość to false.
include_polyline Gdy true, każda trasa w odpowiedzi zawiera encodedPolyline. Domyślna wartość to false.
location_bias Współrzędne geograficzne, które wpływają na sposób rozpoznawania tekstowych punktów pośrednich, np. w celu uściślenia adresu.

Opcje wersji Pro

Wybierz Maps Grounding Pro SKU. Żądanie, które używa jednej lub obu tych funkcji, jest rozliczane w ramach kodu SKU Pro:

Opcja Pro Kiedy z niego korzystać
Adres ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL został ustawiony jako routing_preference Użytkownik pyta o natężenie ruchu, korki lub czas podróży z uwzględnieniem aktualnego natężenia ruchu. Zobacz Wyznaczanie trasy z uwzględnieniem natężenia ruchu.
Od 11 do 25intermediate_waypoints Trasa wymaga więcej niż 10 przystanków między miejscem początkowym a docelowym.

Wszystkie pozostałe opcje, w tym tryb podróży, czas, trasy alternatywne, linie łamane i lokalizacja, są rozliczane w ramach SKU Essentials.

Wyznaczanie trasy z uwzględnieniem natężenia ruchu

Domyślnie trasy są obliczane bez uwzględniania warunków na drodze w czasie rzeczywistym (ROUTING_PREFERENCE_TRAFFIC_UNAWARE). To ustawienie ma najniższe opóźnienie. Sprawdza się w przypadku żądań, w których natężenie ruchu nie ma znaczenia lub nie ma zastosowania, np. tras pieszych lub planowania ogólnego.

Ustaw parametr routing_preference na ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL, aby obliczyć trasę i czas jej trwania na podstawie aktualnych warunków na drodze, gdy dane o natężeniu ruchu są dostępne. Użyj go, gdy użytkownik pyta, ile czasu zajmie przejazd w tej chwili. W przypadku tras TRANSIT to ustawienie korzysta z danych o transporcie publicznym w czasie rzeczywistym, takich jak opóźnienia i odwołania, jeśli są dostępne. Nie jest obsługiwana w przypadku tras WALK ani BICYCLE. Te żądania zwracają błąd INVALID_ARGUMENT. Jest to opcja Pro, więc żądanie jest rozliczane w ramach SKU Pro. Ta opcja zwiększa też czas oczekiwania.

Przykład

Poniższe żądanie MCP dotyczy trasy dojazdu z uwzględnieniem natężenia ruchu, z jednym przystankiem pośrednim i zakodowaną linią łamaną. Jest rozliczany w ramach kodu SKU Pro:

{
  "method": "tools/call",
  "params": {
    "name": "compute_routes",
    "arguments": {
      "origin": {"address": "Ferry Building, San Francisco, CA"},
      "destination": {"address": "Golden Gate Park, San Francisco, CA"},
      "intermediate_waypoints": [
        {"address": "Palace of Fine Arts, San Francisco, CA"}
      ],
      "travel_mode": "DRIVE",
      "routing_preference": "ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL",
      "include_polyline": true
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}

Ten przykładowy kod wysyła to samo żądanie do metody REST computeRoutes:

curl -X POST \
-H "Content-Type: application/json" \
-H "X-Goog-Api-Key: API_KEY" \
-d '{
  "origin": {"address": "Ferry Building, San Francisco, CA"},
  "destination": {"address": "Golden Gate Park, San Francisco, CA"},
  "intermediateWaypoints": [
    {"address": "Palace of Fine Arts, San Francisco, CA"}
  ],
  "travelMode": "DRIVE",
  "routingPreference": "ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL",
  "includePolyline": true
}' \
"https://mapstools.googleapis.com/v1:computeRoutes"

Zastąp API_KEY swoim kluczem interfejsu API.

Odpowiedź

Odpowiedź zawiera routes[], uporządkowane od najbardziej do najmniej zalecanych. Zwracana jest tylko jedna trasa, chyba że compute_alternative_routes ma wartość true. Każda trasa obejmuje:

  • distanceMeters: odległość do pokonania na trasie w metrach.
  • duration: czas potrzebny na pokonanie trasy. W przypadku ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL czas trwania uwzględnia warunki na drodze.
  • encodedPolyline: ścieżka trasy jako zakodowana linia łamana, gdy include_polyline ma wartość true. Możesz go użyć do narysowania trasy na mapie za pomocą innych interfejsów API Google Maps Platform.
  • retrievalToken: nieprzejrzysty token zwracany dla tras DRIVE (ważny przez 10 minut), który możesz przekazać do search_along_route, aby znaleźć miejsca na tej trasie bez ponownego wysyłania punktów pośrednich.
  • attribution: atrybucja, którą musisz wyświetlać wraz z trasą. Zobacz Wymagania dotyczące podania źródła.

Rozliczenia i limity

Każde żądanie compute_routes to jedno zdarzenie podlegające rozliczeniu:

Prośba o alternatywne trasy, linię łamaną, czas wyjazdu lub przyjazdu albo inny środek transportu nie zmienia SKU.

Limit compute_routes wynosi 300 zapytań na minutę w przypadku każdego projektu i jest współdzielony przez oba kody SKU. Ceny znajdziesz w głównej tabeli cen i tabeli cen w Indiach.

Limity

  • Żądanie może zawierać maksymalnie 25 punktów pośrednich. Opcja Pro obejmuje od 11 do 25 punktów. Żądanie z większą liczbą zwraca błąd INVALID_ARGUMENT.
  • Trasy transportu publicznego nie obsługują punktów pośrednich. Żądanie dotyczące transportu publicznego z pośrednimi punktami orientacyjnymi zwraca błąd INVALID_ARGUMENT.
  • Funkcja ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL nie jest obsługiwana w przypadku tras pieszych i rowerowych.
  • W przypadku tras transportu publicznego godziny odjazdu i przyjazdu mogą być podane do 7 dni wstecz lub do 100 dni do przodu. W przypadku innych środków transportu nie mogą one przypadać w przeszłości i mogą być oddalone o maksymalnie 365 dni.
  • Współrzędne punktu orientacyjnego muszą mieścić się w prawidłowych granicach geograficznych (szerokość geograficzna od -90 do 90, długość geograficzna od -180 do 180).
  • Narzędzie nie zwraca szczegółowych wskazówek dojazdu, odcinków ani szczegółów linii transportu publicznego.