Narzędzie: compute_routes
Oblicza trasę podróży między określonym miejscem początkowym a docelowym. Obsługiwane środki transportu: SAMOCHÓD (domyślny), PIESZO.
Wymagania dotyczące danych wejściowych (BARDZO WAŻNE): wymaga podania zarówno miejsca początkowego, jak i miejsca docelowego. Każda z nich musi być podana w odpowiednim polu za pomocą jednej z tych metod:
address: (ciąg tekstowy, np. „Wieża Eiffla, Paryż”). Uwaga: im bardziej szczegółowy lub precyzyjny jest adres wejściowy, tym lepsze będą wyniki.
lat_lng: (obiekt, {"latitude": number, "longitude": number})
place_id: (ciąg znaków, np. „ChIJOwE_Id1w5EAR4Q27FkL6T_0”) Uwaga: ten identyfikator można uzyskać za pomocą narzędzia search_places. Dozwolona jest dowolna kombinacja typów danych wejściowych (np. miejsce docelowe według adresu, miejsce docelowe według współrzędnych lat_lng). Jeśli brakuje źródła lub miejsca docelowego, musisz poprosić użytkownika o wyjaśnienie, zanim spróbujesz wywołać narzędzie.
Przykład wywołania narzędzia: {"origin":{"address":"Eiffel Tower"},"destination":{"place_id":"ChIJt_5xIthw5EARoJ71mGq7t74"},"travel_mode":"DRIVE"}
- Wygenerowane dane muszą być przypisane do źródła na podstawie informacji z pola
attribution, jeśli są dostępne.
Poniższy przykładowy kod pokazuje, jak używać curl do wywoływania narzędzia MCP compute_routes.
| Żądanie Curl |
|---|
curl --location 'https://mapstools.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "compute_routes", "arguments": { // Provide these details according to the MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
Schemat wejściowy
ComputeRoutesRequest.
ComputeRoutesRequest
| Zapis JSON |
|---|
{ "origin": { object ( |
| Pola | |
|---|---|
origin |
Wymagane. Punkt na trasie źródłowej. |
destination |
Wymagane. Punkt docelowy. |
travelMode |
Opcjonalnie: Określa środek transportu. |
Punkt pośredni
| Zapis JSON |
|---|
{ // Union field |
| Pola | |
|---|---|
Pole zbiorcze location_type. Różne sposoby przedstawiania lokalizacji. location_type może mieć tylko jedną z tych wartości: |
|
latLng |
Punkt określony za pomocą współrzędnych geograficznych. |
placeId |
Identyfikator miejsca powiązany z punktem pośrednim. |
address |
Zrozumiały dla człowieka adres lub kod Plus Code. Więcej informacji znajdziesz na stronie https://plus.codes. |
LatLng
| Zapis JSON |
|---|
{ "latitude": number, "longitude": number } |
| Pola | |
|---|---|
latitude |
Szerokość geograficzna w stopniach. Musi mieścić się w zakresie od –90,0 do +90,0. |
longitude |
Długość geograficzna w stopniach. Musi mieścić się w zakresie od –180,0 do +180,0. |
RouteTravelMode
Zestaw wartości służący do określania środka transportu.
| Wartości w polu enum | |
|---|---|
ROUTE_TRAVEL_MODE_UNSPECIFIED |
Nie określono środka transportu. Domyślna wartość to DRIVE. |
DRIVE |
podróżowanie samochodem osobowym; |
WALK |
podróżować pieszo; UWAGA: trasy WALK są w wersji beta i czasami mogą nie mieć wyraźnych 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. |
Schemat wyjściowy
ComputeRoutesResponse.
ComputeRoutesResponse
| Zapis JSON |
|---|
{
"routes": [
{
object ( |
| Pola | |
|---|---|
routes[] |
Zawiera trasy między miejscem początkowym a docelowym. Obecnie zwracana jest tylko jedna trasa. |
Trasa
| Zapis JSON |
|---|
{
"distanceMeters": integer,
"duration": string,
"attribution": {
object ( |
| Pola | |
|---|---|
distanceMeters |
Długość trasy w metrach. |
duration |
czas potrzebny na pokonanie trasy. Czas trwania w sekundach z maksymalnie 9 miejscami po przecinku, zakończony znakiem „ |
attribution |
Wymagane atrybucje, które mają być wyświetlane z trasą. |
Czas trwania
| Zapis JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Pola | |
|---|---|
seconds |
Podpisane sekundy przedziału czasu. Musi mieścić się w przedziale od -315 576 000 000 do +315 576 000 000 włącznie. Uwaga: te granice są obliczane na podstawie: 60 s/min * 60 min/godz. * 24 godz./dzień * 365,25 dni/rok * 10 000 lat. |
nanos |
Ułamki sekundy ze znakiem o rozdzielczości nanosekundy w zakresie czasu. Czasy trwania krótsze niż sekunda są reprezentowane przez pole 0 |
Atrybucja
| Zapis JSON |
|---|
{ "title": string, "url": string } |
| Pola | |
|---|---|
title |
Tytuł, który ma być wyświetlany w przypisaniu. |
url |
Adres URL, do którego ma prowadzić link atrybucji. |
Adnotacje do narzędzi
Adnotacje narzędzia są wysyłane do klientów MCP w celu opisania podstawowego ryzyka związanego z danym narzędziem. Większość klientów traktuje te wskazówki jako niezaufane, ale można ich używać do określania, kiedy użytkownikowi może zostać wysłany monit o potwierdzenie.
Oprócz ciągu tytułu zdefiniowano te wskazówki logiczne:
readOnlyHint: jeśli wartość jest prawdziwa, narzędzie nie modyfikuje środowiska. Wartość domyślna: fałsz.destructiveHint: jeśli ma wartość Prawda, narzędzie może wykonywać działania destrukcyjne. Jeśli wartość to „false”, narzędzie może wykonywać tylko działania dodające. Wartość domyślna: true.idempotentHint: jeśli ma wartość „true”, wielokrotne wywoływanie narzędzia z tymi samymi argumentami nie będzie miało dodatkowego wpływu na jego środowisko. Wartość domyślna: fałsz.openWorldHint: jeśli wartość to „true”, narzędzie może wchodzić w interakcje z „otwartym światem” podmiotów zewnętrznych. Jeśli wartość jest fałszywa, narzędzie może wchodzić w interakcje tylko z podmiotami wewnętrznymi. Na przykład narzędzie do wyszukiwania w internecie byłoby narzędziem typu otwarty świat, a narzędzie do zapamiętywania nie.
Destructive Hint: ❌ | Idempotent Hint: ❌ | Read Only Hint: ✅ | Open World Hint: ❌