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 10 durak.originile aynı biçim.TRANSITile desteklenmez. Yalnızca kullanıcının istediği durakları ekleyin.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 ediyor" 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 kullanılır (ör. "sabah 9'da orada ol").
routing_preference(enum - İSTEĞE BAĞLI):ROUTING_PREFERENCE_TRAFFIC_UNAWARE(varsayılan): Canlı trafik, olaylar ve kapalı yollar yok sayılır. 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 kullanı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ıaddressiçinde verildiği gibi bırakın ve bölgeyi tahmin etmek yerinelocation_biasdeğerini amaçlanan alana 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(boolean - İSTEĞE BAĞLI): Yalnızca rota geometrisi (encoded_polyline) gerektiğindetrueolarak ayarlanır. Varsayılan değer:false.
Araç Çağrısı Talimatları:
- Başlangıç veya hedef eksikse aracı çağırmadan önce kullanıcıdan açıklama istemeniz ZORUNLUDUR.
- "A ile B arasındaki mesafe ne kadar?" sorularında B'yi
origin, A'yı isedestinationolarak 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 etmeyin.- Yalnızca araç tarafından döndürülen 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. Kalkış ara noktası. |
destination |
Zorunlu. Hedef ara nokta. |
travelMode |
İsteğe bağlıdır. Ulaşım şeklini belirtir. |
intermediateWaypoints[] |
İsteğe bağlıdır. Başlangıç ve varış noktası arasında sırayla geçilecek ara duraklar. En fazla 10 ara nokta desteklenir. |
routingPreference |
İsteğe bağlıdır. Trafik verilerinin rotayı hesaplamak için nasıl kullanılacağını belirler. |
locationBias |
İsteğe bağlıdır. 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ıdır. Kodlanmış çoklu çizginin yanıt rotalarına dahil edilip edilmeyeceği. Varsayılan değer: |
computeAlternativeRoutes |
İsteğe bağlıdır. Ö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, mevcut tüm rotalar döndürülür ancak her istek için alternatifler mevcut olmayabilir. |
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ıdır. 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ıdır. 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: |
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 arasında olmalıdır (0001-01-01T00:00:00Z ile 9999-12-31T23:59:59Z arası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. |
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. |
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. |
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şımayla 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. |
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. Bu özellik yalnızca izin verilenler listesindeki müşteriler tarafından kullanılabilir. İzin verilenler listesine eklenmezse istek |
Çı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 (değerler 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ç notları, belirli bir aracın temel riskini açıklamak için MCP istemcilerine gönderilir. Çoğu istemci bu ipuçlarını güvenilir olmayan olarak değerlendirir 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şime girebilir. Yanlış ise araç yalnızca dahili varlıklarla etkileşim kurabilir. Örneğin, web arama aracı açık dünya iken bellek aracı açık dünya değildir.
Yıkıcı İpucu: ❌ | Eşgüçlü İpucu: ❌ | Salt Okunur İpucu: ✅ | Açık Dünya İpucu: ❌