Araç: compute_routes
Başlangıç ve varış noktası arasında (isteğe bağlı olarak ara duraklar üzerinden) seyahat rotalarını hesaplar. Her rotanın mesafesini ve süresini döndürür.
Giriş Şartları (KRİTİK):
originvedestination(nesneler - ZORUNLU): Her biri, aşağıdakilerden tam olarak biri kullanılarak sağlanmalıdır:address(dize, ör.'Eiffel Tower, Paris'). Adlandırılmış yerler, önemli noktalar ve işletmeler doğrudan çözümlenir. Bu nedenle, yalnızca bir ara noktanın coğrafi kodunu almak için öncesearch_placesyöntemini çağırmayın. Kullanıcının bahsettiği şehir, bölge veya ülkeleri ekleyin.lat_lng(nesne,{"latitude": number, "longitude": number}).place_id(dize, ör.'ChIJOwE_Id1w5EAR4Q27FkL6T_0'), örneğinsearch_places.
intermediate_waypoints(nesne dizisi - İSTEĞE BAĞLI): Başlangıç ve varış noktası arasında sırayla geçilecek en fazla 25 durak.originile aynı biçim.TRANSITile desteklenmez. Yalnızca kullanıcının istediği durakları ekleyin. 10'dan fazla ara nokta belirtmek daha yüksek maliyete ve daha yüksek gecikmeye neden olur.travel_mode(enum - İSTEĞE BAĞLI):DRIVE(varsayılan),WALK,BICYCLEveyaTRANSIT.Zamanlama (İSTEĞE BAĞLI - en fazla BİR tane ayarlayın): UTC farkı içeren RFC 3339 zaman damgaları (ör.
'2026-09-19T08:00:00-07:00'). Varsayılan olarak "Şimdi hareket et" seçeneği kullanılır.TRANSITiçin zaman, geçmişte en fazla 7 gün veya gelecekte en fazla 100 gün olabilir. Diğer modlarda ise zaman, gelecekte 365 güne kadar olabilir ve geçmişte olmamalıdır.departure_time: Kullanıcı ne zaman ayrılacağını söylediğinde (ör. "yarın sabah 8'de") kullanın.arrival_time: Kullanıcı ne zaman varması gerektiğini söylediğinde (ör. "saat 09:00'da orada ol") kullanın.
routing_preference(enum - İSTEĞE BAĞLI):ROUTING_PREFERENCE_TRAFFIC_UNAWARE(varsayılan): Canlı trafik, olaylar ve kapalı yollar dikkate alınmaz. En düşük gecikme.ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL: Mümkün olduğunda canlı trafik koşullarını kullanır.WALKveyaBICYCLEiçin desteklenmez. Bu ayarı YALNIZCA kullanıcı trafik, yoğunluk veya trafiğe göre ayarlanmış TVS hakkında soru sorduğunda ayarlayın. Daha yüksek maliyet ve gecikmeye neden olur.
location_bias(nesne - İSTEĞE BAĞLI): Ara nokta adreslerindeki yer adlarının anlam belirsizliğini gidermek için kullanılan{"latitude": number, "longitude": number}. Ad belirsizse (ör. "Springfield") ve kullanıcı bölge belirtmediyse adıaddressalanında verildiği gibi bırakın ve bölgeyi tahmin etmek yerinelocation_biasalanını amaçlanan bölgeye ayarlayın.compute_alternative_routes(boole - İSTEĞE BAĞLI): Yalnızca kullanıcı rota seçenekleri veya alternatifleri istediğindetrueolarak ayarlayın. Varsayılan değerfalseolup yalnızca önerilen rotayı döndürür.include_polyline(Boole - İSTEĞE BAĞLI): Yalnızca rota geometrisi (encoded_polyline) gerektiğindetrueolarak ayarlayın. Varsayılan değerfalse'dir.
Araç Çağrısı Talimatları:
- Başlangıç veya hedef eksikse aracı çağırmadan önce kullanıcıdan açıklama istemeniz ZORUNLUDUR.
- "A, B'den ne kadar uzakta?" sorularında B'yi
origin, A'yıdestinationolarak kullanın.
Örnek Araç Çağrısı: {"origin":{"address":"Eiffel Tower"},"destination":{"place_id":"ChIJt_5xIthw5EARoJ71mGq7t74"},"intermediate_waypoints":[{"address":"Louvre Museum"}],"travel_mode":"DRIVE","departure_time":"2026-09-19T08:00:00+02:00"}
Instructions for Response:
- Alternatif rotalar istendiğinde rotalar en çok önerilenden en az önerilene doğru sıralanır.
routesboşsa kullanıcıya rota bulunamadığını söyleyin. Rotayı tahmin etmeye çalışmayın.DRIVErotası üzerindeki yerleri bulmak için rotanınretrieval_tokendeğerinisearch_along_routedeğerine iletin. Jeton 10 dakika boyunca geçerlidir.- Yalnızca aracın döndürdüğü gerçekleri belirtin. Adım adım yol tarifleri, toplu taşıma hatları, istasyonlar, peronlar veya aktarmalar uydurmayın.
- Temellendirilmiş çıkış, mümkün olduğunda her rotanın
attributionalanı kullanılarak kaynağa atfedilmelidir.
Aşağıdaki kod örneğinde, compute_routes MCP aracını çağırmak için curl öğesinin nasıl kullanılacağı gösterilmektedir.
| Curl İsteği |
|---|
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 }' |
Giriş şeması
ComputeRoutesRequest.
ComputeRoutesRequest
| JSON gösterimi |
|---|
{ "origin": { object ( |
| Alanlar | |
|---|---|
origin |
Zorunlu. Başlangıç noktası ara noktası. |
destination |
Zorunlu. Hedef ara nokta. |
travelMode |
İsteğe bağlı. Ulaşım şeklini belirtir. |
intermediateWaypoints[] |
İsteğe bağlı. Başlangıç ve varış noktası arasında sırayla geçilecek ara duraklar. En fazla 25 ara nokta desteklenir. 10'dan fazla ara nokta belirtmek daha yüksek maliyete ve daha yüksek gecikmeye neden olur. |
routingPreference |
İsteğe bağlı. Trafik verilerinin rotayı hesaplamak için nasıl kullanılacağını belirler. |
locationBias |
İsteğe bağlı. Arama sonuçlarının yönlendirileceği bir konum (ör. ara nokta metin sorgularının anlam belirsizliğini gidermek için). |
includePolyline |
İsteğe bağlı. Kodlanmış çoklu çizginin yanıt rotalarına dahil edilip edilmeyeceği. Varsayılan değer |
computeAlternativeRoutes |
İsteğe bağlı. Önerilen rotaya ek olarak alternatif rotaların hesaplanıp hesaplanmayacağı. Varsayılan olarak false değerine ayarlanır. Bu durumda yalnızca önerilen rota döndürülür. Doğru değerine ayarlandığında, her istek için alternatifler mevcut olmasa da mevcut tüm rotalar döndürülür. |
timing birleşik alanı. Başlangıç noktasından ne zaman ayrılacağınızı veya son ara noktaya ne zaman varacağınızı belirtir. Belirtilmezse varsayılan olarak geçerli saatte kalkış yapılır. TRANSIT için zaman, en fazla 7 gün önce ve en fazla 100 gün sonra olmalıdır. Diğer seyahat modları için zaman geçmişte olmamalı ve gelecekte en fazla 365 gün olmalıdır. timing aşağıdakilerden yalnızca biri olabilir: |
|
departureTime |
İsteğe bağlı. Rotanın kalkış saatine göre hesaplanması gerektiğini belirtir. Zaman damgasında RFC 3339 kullanılır. Yani oluşturulan çıkış her zaman Z ile normalleştirilir ve 0, 3, 6 veya 9 kesirli basamak kullanılır. "Z" dışındaki zaman farkları da kabul edilir. Örnekler: |
arrivalTime |
İsteğe bağlı. Rotanın varış zamanına göre hesaplanması gerektiğini belirtir. Zaman damgasında RFC 3339 kullanılır. Yani oluşturulan çıkış her zaman Z ile normalleştirilir ve 0, 3, 6 veya 9 kesirli basamak kullanılır. "Z" dışındaki zaman farkları da kabul edilir. Örnekler: |
Ara nokta
| JSON gösterimi |
|---|
{ // Union field |
| Alanlar | |
|---|---|
location_type birleşik alanı. Bir konumu temsil etmenin farklı yolları. location_type aşağıdakilerden yalnızca biri olabilir: |
|
latLng |
Coğrafi koordinatlar kullanılarak belirtilen bir nokta. |
placeId |
Ara nokta ile ilişkili yer kimliği. |
address |
Kullanıcıların okuyabileceği adres veya Plus Code. Ayrıntılar için https://plus.codes adresini ziyaret edin. |
LatLng
| JSON gösterimi |
|---|
{ "latitude": number, "longitude": number } |
| Alanlar | |
|---|---|
latitude |
Derece cinsinden enlem. [-90,0, +90,0] aralığında olmalıdır. |
longitude |
Derece cinsinden boylam. [-180,0, +180,0] aralığında olmalıdır. |
Zaman damgası
| JSON gösterimi |
|---|
{ "seconds": string, "nanos": integer } |
| Alanlar | |
|---|---|
seconds |
Unix epoch 1970-01-01T00:00:00Z'den bu yana geçen UTC zamanının saniye cinsinden değerini temsil eder. -62135596800 ile 253402300799 (başlangıç ve bitiş değerleri dahil) arasında olmalıdır (0001-01-01T00:00:00Z ile 9999-12-31T23:59:59Z aralığına karşılık gelir). |
nanos |
Nanosaniye çözünürlüğünde, saniyenin negatif olmayan kesirleri. Bu alan, sürenin nanosaniye kısmıdır, saniyeye alternatif değildir. Kesirli negatif saniye değerleri, zamanı ileriye doğru sayan negatif olmayan nanos değerlerine sahip olmalıdır. 0 ile 999.999.999 (her iki değer de dahil) arasında olmalıdır. |
RouteTravelMode
Seyahat modunu belirtmek için kullanılan bir değerler kümesi.
| Sıralamalar | |
|---|---|
ROUTE_TRAVEL_MODE_UNSPECIFIED |
Seyahat modu belirtilmedi. Varsayılan değer DRIVE'dir. |
DRIVE |
Binek otomobille seyahat |
WALK |
Yürüyerek seyahat edin. NOT: WALK rotaları beta sürümündedir ve bazen net kaldırımlar veya yaya yolları eksik olabilir. Uygulamanızda gösterdiğiniz tüm yürüyüşler için kullanıcıya bu uyarıyı göstermeniz gerekir. |
BICYCLE |
Bisikletle seyahat edin. |
TRANSIT |
Toplu taşıma ile seyahat edin. |
RoutingPreference
Rota hesaplanırken dikkate alınacak faktörleri belirten bir değerler kümesi.
| Sıralamalar | |
|---|---|
ROUTING_PREFERENCE_UNSPECIFIED |
Yönlendirme tercihi belirtilmedi. Varsayılan değer ROUTING_PREFERENCE_TRAFFIC_UNAWARE'dir. |
ROUTING_PREFERENCE_TRAFFIC_UNAWARE |
Canlı trafik koşullarını dikkate almadan rotaları hesaplar. Trafik koşullarının önemli veya geçerli olmadığı durumlarda uygundur. Bu değer kullanıldığında en düşük gecikme süresi elde edilir. |
ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL |
Trafik verileri mevcut olduğunda canlı trafik koşullarını dikkate alarak rotaları hesaplar. Bu değer, Pro katmanını tetikler ve daha yüksek faturalandırma maliyeti ile gecikmeye neden olur. |
Çıkış şeması
ComputeRoutesResponse.
ComputeRoutesResponse
| JSON gösterimi |
|---|
{
"routes": [
{
object ( |
| Alanlar | |
|---|---|
routes[] |
İstenen başlangıç ve varış noktası arasındaki rotaları içerir. Bu rotalar, en çok önerilenden en az önerilene doğru sıralanır. |
Rota
| JSON gösterimi |
|---|
{
"distanceMeters": integer,
"duration": string,
"attribution": {
object ( |
| Alanlar | |
|---|---|
distanceMeters |
Rotanın metre cinsinden seyahat mesafesi. |
duration |
Rotada gezinmek için gereken süre. En fazla dokuz kesirli basamak içeren ve " |
attribution |
Rotayla birlikte gösterilmesi gereken ilişkilendirme. |
encodedPolyline |
Rotanın kodlanmış çoklu çizgisi. https://developers.google.com/maps/documentation/utilities/polylinealgorithm adresini inceleyin. |
retrievalToken |
SearchAlongRoute gibi alt araçlarda bu belirli rotayı almak için kullanılabilecek bir jeton. 10 dakika boyunca geçerlidir. |
Süre
| JSON gösterimi |
|---|
{ "seconds": string, "nanos": integer } |
| Alanlar | |
|---|---|
seconds |
Zaman aralığının işaretli saniyeleri. -315.576.000.000 ile +315.576.000.000 arasında (her iki değer de dahil) olmalıdır. Not: Bu sınırlar şu şekilde hesaplanır: 60 sn./dk. * 60 dk./sa. * 24 sa./gün * 365,25 gün/yıl * 10.000 yıl |
nanos |
Zaman aralığının nanosaniye çözünürlüğünde saniyenin işaretli kesirleri. Bir saniyeden kısa süreler 0 |
İlişkilendirme
| JSON gösterimi |
|---|
{ "title": string, "url": string } |
| Alanlar | |
|---|---|
title |
İlişkilendirme için gösterilecek başlık. |
url |
İlişkilendirme için bağlantı verilecek URL. |
Araç Notları
Araç ek açıklamaları, belirli bir aracın temel riskini açıklamak için MCP istemcilerine gönderilir. Çoğu istemci bu ipuçlarını güvenilir olarak değerlendirmez ancak kullanıcıya ne zaman onay istemi gönderileceğine karar vermek için kullanılabilir.
Başlık dizesiyle birlikte aşağıdaki boole ipuçları şu şekilde tanımlanır:
readOnlyHint: Doğru ise araç, ortamını değiştirmez. Varsayılan: false.destructiveHint: Doğru ise araç, yıkıcı işlemler gerçekleştirebilir. Yanlış ise araç yalnızca ekleme işlemleri gerçekleştirebilir. Varsayılan: true.idempotentHint: Doğru ise aracın aynı bağımsız değişkenlerle tekrar tekrar çağrılması, ortamı üzerinde ek bir etki yaratmaz. Varsayılan: false.openWorldHint: Doğru ise araç, harici varlıkların "açık dünyası" ile etkileşim kurabilir. Yanlış ise araç yalnızca dahili varlıklarla etkileşim kurabilir. Örneğin, web arama aracı açık dünya olurken bellek aracı açık dünya olmaz.
Yıkıcı İpucu: ❌ | Aynı Sonucu Veren İpucu: ❌ | Salt Okunur İpucu: ✅ | Açık Dünya İpucu: ❌