Narzędzie: search_along_route
Wywołaj to narzędzie, gdy użytkownik chce znaleźć miejsca, firmy lub punkty orientacyjne na trasie podróży (np. „stacje benzynowe na trasie do Tahoe”, „kawiarnie między SF a San Jose”). Wywołanie tego narzędzia wiąże się z wyższymi kosztami niż w przypadku search_places, dlatego używaj search_places, gdy wyszukujesz miejsca w pobliżu jednej lokalizacji, a nie na trasie.
Wymagania dotyczące danych wejściowych (KRYTYCZNE):
text_query(ciąg znaków – WYMAGANY): opis w języku naturalnym tego, czego szukać na trasie.- Przykłady:
'ev chargers','coffee','vegetarian restaurants','rest stops'.
- Przykłady:
Specyfikacja trasy (WYMAGANA – podaj dokładnie JEDNĄ z tych opcji):
retrieval_token(ciąg tekstowy):retrieval_tokenzwrócony przez poprzednie wywołaniecompute_routesdla trasyDRIVE. Używaj tej opcji, gdy trasa została już obliczona. Token jest ważny przez 10 minut.route_endpoints(obiekt):originidestinationtrasy. Każdy z nich musi być podany za pomocą jednego z tych elementów:address,lat_lnglubplace_id.- Przykład:
{"route_endpoints": {"origin": {"address": "San Francisco, CA"}, "destination": {"address": "Lake Tahoe, CA"}}}
- Przykład:
encoded_polyline(ciąg znaków): zakodowana linia łamana reprezentująca trasęDRIVE.
travel_mode(typ wyliczeniowy – OPCJONALNY):DRIVE(domyślny),WALKlubBICYCLE. AtrybutyWALKiBICYCLEsą obsługiwane tylko w przypadkuroute_endpoints.TRANSITnie jest obsługiwany.routing_preference(typ wyliczeniowy – OPCJONALNY):ROUTING_PREFERENCE_TRAFFIC_UNAWARE(domyślna): oblicza trasę i objazdy bez uwzględniania informacji o aktualnym natężeniu ruchu. Najkrótszy czas oczekiwania.ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL: korzysta z informacji o warunkach na drodze w czasie rzeczywistym, jeśli są dostępne. Nieobsługiwane w przypadkuWALKiBICYCLE. Ustaw tę opcję TYLKO wtedy, gdy użytkownik pyta o natężenie ruchu, korki lub czas objazdu dostosowany do natężenia ruchu. Powoduje dłuższy czas oczekiwania.
include_extended_details(wartość logiczna – OPCJONALNA): ustaw wartośćtruetylko wtedy, gdy żądanie wymaga statystyk dotyczących opinii jakościowych, konkretnych pozycji menu lub ofert, atmosfery, wskazówek dla odwiedzających lub natężenia ruchu, dostępności ładowarek EV, cen paliwa lub innych szczegółowych informacji jakościowych. Domyślna wartość tofalse. Włączenie tej opcji może wydłużyć czas oczekiwania.language_code(ciąg znaków – OPCJONALNY): język podsumowania wyników i informacji o miejscu, np.en,ja,en-US. Domyślna wartość toen-US.region_code(ciąg znaków – OPCJONALNY): kod regionu Unicode CLDR użytkownika, np.US,CA.
Instrukcje dotyczące wywołania narzędzia:
- Każdy wynik zawiera
detour_summary(jeśli jest dostępny) opisujący dodatkową odległość (localized_detour_distance) i, o ile trasa nie została podana jakoencoded_polyline, dodatkowy czas (detour_duration) związany z zatrzymaniem się w tym miejscu. Użyj go, aby porównać opcje. - Odpowiedź
summarymoże zawierać cytaty indeksowane od zera (np. „[0]”) odwołujące się do wpisów wresults. - Uziemione dane wyjściowe muszą być przypisane do źródła za pomocą pola
attributionkażdego elementuresults[].place, jeśli jest dostępne.
Poniższy przykładowy kod pokazuje, jak używać curl do wywoływania narzędzia MCP search_along_route.
| Żą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": "search_along_route", "arguments": { // Provide these details according to the MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
Schemat wejściowy
Wiadomość z żądaniem dla SearchAlongRoute.
SearchAlongRouteRequest
| Zapis JSON |
|---|
{ "textQuery": string, "languageCode": string, "regionCode": string, "routingPreference": enum ( |
| Pola | |
|---|---|
textQuery |
Wymagane. Zapytanie w języku naturalnym (np. „ładowarki EV”, „kawa”). |
languageCode |
Opcjonalnie. Język podsumowania i informacji o miejscu. Domyślna wartość to „en-US”. |
regionCode |
Opcjonalnie. Kod kraju/regionu (CLDR) lokalizacji (np. „US”). |
routingPreference |
Opcjonalnie. Opcjonalne ustawienie routingu określające sposób wykorzystania danych o ruchu. Domyślna wartość to TRAFFIC_UNAWARE. |
includeExtendedDetails |
Opcjonalnie. Zawiera w odpowiedzi rozszerzone informacje o miejscu. Ustaw to pole na Pozostaw wartość Włączenie tego pola może spowodować większe opóźnienie. |
travelMode |
Opcjonalnie. Określa środek transportu używany do obliczania trasy i objazdów. Domyślna wartość to |
Pole zbiorcze route_spec. Specyfikacja trasy: istniejąca trasa, token trasy lub punkty końcowe miejsca początkowego i docelowego. route_spec może mieć tylko jedną z tych wartości: |
|
encodedPolyline |
Zakodowany ciąg znaków linii łamanej reprezentujący trasę. Więcej informacji znajdziesz na stronie https://developers.google.com/maps/documentation/utilities/polylinealgorithm. |
retrievalToken |
Token pobierania zwrócony z poprzedniego wywołania ComputeRoutes reprezentującego trasę. |
routeEndpoints |
jawne punkty końcowe trasy (miejsce początkowe i docelowe); |
RouteEndpoints
| Zapis JSON |
|---|
{ "origin": { object ( |
| Pola | |
|---|---|
origin |
Wymagane. Punkt początkowy (adres, identyfikator miejsca lub współrzędne geograficzne). |
destination |
Wymagane. Punkt docelowy (adres, identyfikator miejsca lub współrzędne geograficzne). |
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 |
Adres zrozumiały dla człowieka lub 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 [-90,0, +90,0]. |
longitude |
Długość geograficzna w stopniach. Musi mieścić się w zakresie [-180,0, +180,0]. |
RoutingPreference
Zbiór wartości określających czynniki, które należy wziąć pod uwagę podczas obliczania trasy.
| Wartości w polu enum | |
|---|---|
ROUTING_PREFERENCE_UNSPECIFIED |
Nie określono preferencji routingu. Domyślna wartość to ROUTING_PREFERENCE_TRAFFIC_UNAWARE. |
ROUTING_PREFERENCE_TRAFFIC_UNAWARE |
Oblicza trasy bez uwzględniania aktualnych warunków na drodze. Odpowiedni, gdy warunki na drodze nie mają znaczenia lub nie dotyczy. Użycie tej wartości zapewnia najniższe opóźnienie. |
ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL |
Oblicza trasy z uwzględnieniem aktualnych warunków na drodze, jeśli dane o ruchu są dostępne. W przypadku Ta wartość spowoduje aktywację poziomu Pro i zwiększenie rozliczonych kosztów oraz czasu oczekiwania. |
RouteTravelMode
Zestaw wartości używanych 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óż samochodem osobowym. |
WALK |
Spaceruj. UWAGA: trasy WALK są w wersji beta i czasami mogą nie uwzględniać chodników lub ścieżek dla pieszych. Musisz wyświetlać to ostrzeżenie użytkownikowi w przypadku wszystkich tras pieszych wyświetlanych w aplikacji. |
BICYCLE |
Podróżuj rowerem. |
TRANSIT |
Podróżuj transportem publicznym. |
Schemat wyjściowy
Wiadomość z odpowiedzią dla SearchAlongRoute.
SearchAlongRouteResponse
| Zapis JSON |
|---|
{
"results": [
{
object ( |
| Pola | |
|---|---|
results[] |
Tylko dane wyjściowe. Uporządkowana lista wyników wyszukiwania znalezionych na trasie. |
summary |
Tylko dane wyjściowe. Podsumowanie wyników wyszukiwania i objazdów w języku naturalnym. Może zawierać cytaty indeksowane od zera (np. „[0]”, „[1]”) odwołujące się do odpowiednich wpisów na liście |
contentToken |
Tylko dane wyjściowe. Zaszyfrowany token, który zawiera kontekst wyszukiwania i może być przekazywany do usług renderowania wizualnego Map Google, pakietów SDK lub zestawu agentowych narzędzi interfejsu Map (A2UI) w celu wyświetlania interaktywnych komponentów interfejsu dla zwróconych wyników wyszukiwania. |
Wynik
| Zapis JSON |
|---|
{ "place": { object ( |
| Pola | |
|---|---|
place |
Tylko dane wyjściowe. Szczegółowe informacje o miejscu znalezionym na trasie. |
detourSummary |
Tylko dane wyjściowe. Wskaźniki objazdu, które zostały naliczone po dodaniu tego miejsca jako przystanku pośredniego na trasie. Pominięte lub puste, jeśli nie udało się obliczyć danych dotyczących objazdu. |
PlaceView
| Zapis JSON |
|---|
{ "place": string, "id": string, "googleMapsLinks": { object ( |
| Pola | |
|---|---|
place |
Nazwa zasobu miejsca docelowego w formacie „places/{id}”. |
id |
Identyfikator miejsca, w którym znajduje się dany punkt. |
googleMapsLinks |
Linki do wywoływania różnych działań w Mapach Google. |
attribution |
Wymagana atrybucja, która ma się wyświetlać z miejscem. |
Pole zbiorcze Pole |
|
location |
Pozycja tego miejsca. |
LatLng
| Zapis JSON |
|---|
{ "latitude": number, "longitude": number } |
| Pola | |
|---|---|
latitude |
Szerokość geograficzna w stopniach. Musi mieścić się w zakresie [-90,0, +90,0]. |
longitude |
Długość geograficzna w stopniach. Musi mieścić się w zakresie [-180,0, +180,0]. |
GoogleMapsLinks
| Zapis JSON |
|---|
{ "directionsUrl": string, "placeUrl": string, "writeAReviewUrl": string, "reviewsUrl": string, "photosUrl": string } |
| Pola | |
|---|---|
directionsUrl |
Link do wskazówek dojazdu do miejsca. Link zawiera tylko lokalizację docelową i używa domyślnego środka transportu |
placeUrl |
link do tego miejsca, |
writeAReviewUrl |
link do napisania opinii o tym miejscu w Mapach Google. |
reviewsUrl |
Link do opinii o tym miejscu w Mapach Google. |
photosUrl |
Link do zdjęć tego miejsca w Mapach Google. |
Atrybucja
| Zapis JSON |
|---|
{ "title": string, "url": string } |
| Pola | |
|---|---|
title |
Tytuł, który ma być wyświetlany w atrybucji. |
url |
Adres URL, do którego ma prowadzić link w atrybucji. |
DetourSummary
| Zapis JSON |
|---|
{ "detourDuration": string, "localizedDetourDistance": string } |
| Pola | |
|---|---|
detourDuration |
Dodatkowy czas podróży wymagany do dotarcia do tego miejsca z głównej trasy. Ta wartość nie jest ustawiana, jeśli trasa jest określona przez Czas w sekundach z maksymalnie 9 miejscami po przecinku, zakończony literą „ |
localizedDetourDistance |
Dodatkowa odległość, jaką trzeba pokonać, aby dotrzeć do tego miejsca z głównej trasy, sformatowana do wyświetlenia w języku żądania (np. „1.2 mi” lub „1,9 km”). |
Czas trwania
| Zapis JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Pola | |
|---|---|
seconds |
Sekundy ze znakiem w przedziale czasu. Musi mieścić się w zakresie 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 dnia/rok * 10 000 lat |
nanos |
Ułamki sekundy ze znakiem w nanosekundowej rozdzielczości przedziału czasu. Czas trwania krótszy niż 1 sekunda jest reprezentowany przez pole |
Adnotacje dotyczące narzędzi
Adnotacje narzędzi są wysyłane do klientów MCP, aby opisać podstawowe ryzyko związane z danym narzędziem. Większość klientów traktuje te wskazówki jako niezaufane, ale można ich użyć do określenia, kiedy wysłać użytkownikowi prośbę o potwierdzenie.
Oprócz ciągu tytułu zdefiniowane są te wskazówki logiczne:
readOnlyHint: jeśli ma wartość „true”, narzędzie nie modyfikuje swojego środowiska. Wartość domyślna: false.destructiveHint: jeśli ma wartość „true”, narzędzie może wykonywać działania destrukcyjne. Jeśli ma wartość false, narzędzie może wykonywać tylko działania dodawania. 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: false.openWorldHint: jeśli ma wartość true, narzędzie może wchodzić w interakcje z „otwartym światem” podmiotów zewnętrznych. Jeśli ma wartość false, narzędzie może wchodzić w interakcje tylko z elementami wewnętrznymi. Na przykład narzędzie do wyszukiwania w internecie jest narzędziem typu Otwarty świat, a narzędzie do zapamiętywania – nie.
Wskazówka dotycząca niszczenia: ❌ | Wskazówka dotycząca idempotencji: ❌ | Wskazówka dotycząca tylko do odczytu: ✅ | Wskazówka dotycząca otwartego świata: ❌