टूल: compute_routes
यह एपीआई, यात्रा शुरू करने की जगह और मंज़िल के बीच के रास्ते की जानकारी देता है. इसमें, यात्रा के दौरान पड़ने वाले स्टॉप की जानकारी भी शामिल की जा सकती है. यह हर रास्ते के लिए दूरी और लगने वाला समय दिखाता है.
इनपुट से जुड़ी ज़रूरी शर्तें (अहम):
originऔरdestination(ऑब्जेक्ट - ज़रूरी): इनमें से हर एक को इनमें से किसी एक का इस्तेमाल करके उपलब्ध कराया जाना चाहिए:address(स्ट्रिंग, जैसे कि'Eiffel Tower, Paris'). नाम वाली जगहों, लैंडमार्क, और कारोबारों को सीधे तौर पर रिज़ॉल्व किया जाता है. इसलिए, किसी वेपॉइंट को जियोकोड करने के लिए, पहलेsearch_placesको कॉल न करें. उपयोगकर्ता ने जिस शहर, इलाके या देश का नाम लिया है उसे शामिल करें.lat_lng(object,{"latitude": number, "longitude": number}).place_id(स्ट्रिंग, जैसे कि'ChIJOwE_Id1w5EAR4Q27FkL6T_0'), उदाहरण के लिए,search_placesसे.
intermediate_waypoints(ऑब्जेक्ट का कलेक्शन - ज़रूरी नहीं): यात्रा शुरू करने की जगह और मंज़िल के बीच, क्रम से ज़्यादा से ज़्यादा 10 स्टॉप.originजैसा फ़ॉर्मैट.TRANSITके साथ काम नहीं करता. सिर्फ़ वे स्टॉप शामिल करें जिनके लिए उपयोगकर्ता ने अनुरोध किया है.travel_mode(enum - ज़रूरी नहीं):DRIVE(डिफ़ॉल्ट),WALK,BICYCLEयाTRANSIT.समय (ज़रूरी नहीं - ज़्यादा से ज़्यादा एक सेट करें): यूटीसी ऑफ़सेट के साथ आरएफ़सी 3339 टाइमस्टैंप, जैसे कि
'2026-09-19T08:00:00-07:00'. डिफ़ॉल्ट रूप से, यह 'अभी रवाना हो रही है' पर सेट होता है.TRANSITके लिए, समय को पिछले सात दिनों या आने वाले 100 दिनों तक के लिए सेट किया जा सकता है. अन्य मोड के लिए, समय को आने वाले 365 दिनों तक के लिए सेट किया जा सकता है. हालांकि, इसे बीते हुए समय के लिए सेट नहीं किया जा सकता.departure_time: इसका इस्तेमाल तब करें, जब उपयोगकर्ता यह बताए कि वह कब रवाना होगा (उदाहरण के लिए, "कल सुबह 8 बजे").arrival_time: इसका इस्तेमाल तब करें, जब उपयोगकर्ता यह बताए कि उसे कब पहुंचना है. उदाहरण के लिए, "सुबह 9 बजे तक वहां पहुंचना है".
routing_preference(enum - ज़रूरी नहीं है):ROUTING_PREFERENCE_TRAFFIC_UNAWARE(डिफ़ॉल्ट): यह लाइव ट्रैफ़िक, घटनाओं, और बंद सड़कों को अनदेखा करता है. इंतज़ार का समय सबसे कम.ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL: उपलब्ध होने पर, लाइव ट्रैफ़िक की जानकारी का इस्तेमाल करता है. यह सुविधाWALKयाBICYCLEके लिए उपलब्ध नहीं है. इसे सिर्फ़ तब सेट करें, जब उपयोगकर्ता ट्रैफ़िक, भीड़भाड़ या ट्रैफ़िक के हिसाब से ईटीए के बारे में पूछे. इसमें ज़्यादा लागत और इंतज़ार का समय लगता है.
location_bias(ऑब्जेक्ट - ज़रूरी नहीं):{"latitude": number, "longitude": number}इसका इस्तेमाल, वेपॉइंट के पतों में जगहों के नामों को साफ़ तौर पर बताने के लिए किया जाता है. अगर किसी जगह का नाम साफ़ तौर पर नहीं बताया गया है (जैसे, "स्प्रिंगफ़ील्ड") और उपयोगकर्ता ने कोई इलाका नहीं बताया है, तो नाम कोaddressमें दिए गए नाम के तौर पर ही रखें. साथ ही, किसी इलाके का अनुमान लगाने के बजाय,location_biasको उस इलाके पर सेट करें जहां आपको जाना है.compute_alternative_routes(बूलियन - ज़रूरी नहीं): इसेtrueपर सिर्फ़ तब सेट करें, जब उपयोगकर्ता रास्ते के विकल्प या अन्य रास्ते के बारे में पूछे. डिफ़ॉल्ट रूप से,falseपर सेट होता है. इससे सिर्फ़ सुझाया गया रास्ता दिखता है.include_polyline(बूलियन - ज़रूरी नहीं): इसेtrueपर सिर्फ़ तब सेट करें, जब रास्ते की ज्यामिति (encoded_polyline) की ज़रूरत हो. डिफ़ॉल्ट रूप से, यहfalseपर सेट होता है.
टूल कॉल के लिए निर्देश:
- अगर शुरुआत या मंज़िल की जानकारी मौजूद नहीं है, तो टूल को कॉल करने से पहले, आपको उपयोगकर्ता से साफ़ तौर पर जानकारी मांगनी होगी.
- "A से B कितनी दूर है?" जैसे सवालों के लिए, B को
originऔर A कोdestinationके तौर पर इस्तेमाल करें.
टूल कॉल का उदाहरण: {"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"}
जवाब देने के लिए निर्देश:
- जब वैकल्पिक रास्तों का अनुरोध किया जाता है, तो रास्तों को सबसे ज़्यादा से लेकर सबसे कम सुझाए गए क्रम में लगाया जाता है.
- अगर
routesखाली है, तो उपयोगकर्ता को बताएं कि कोई रास्ता नहीं मिला. रास्ते का अनुमान न लगाएं. - सिर्फ़ टूल से मिले तथ्यों को बताएं. मोड़-दर-मोड़ निर्देश, बस, मेट्रो वगैरह की लाइनें, स्टेशन, प्लैटफ़ॉर्म या ट्रांसफ़र की जानकारी खुद से न बनाएं.
- तथ्यों पर आधारित आउटपुट को सोर्स के साथ एट्रिब्यूट किया जाना चाहिए. इसके लिए, हर रूट के
attributionफ़ील्ड का इस्तेमाल करें. हालांकि, ऐसा तब ही करें, जब यह फ़ील्ड उपलब्ध हो.
यहां दिए गए कोड सैंपल में, curl का इस्तेमाल करके compute_routes एमसीपी टूल को कॉल करने का तरीका बताया गया है.
| 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 }' |
इनपुट स्कीमा
ComputeRoutesRequest.
ComputeRoutesRequest
| JSON के काेड में दिखाना |
|---|
{ "origin": { object ( |
| फ़ील्ड | |
|---|---|
origin |
ज़रूरी है. यात्रा शुरू होने की जगह का वेपॉइंट. |
destination |
ज़रूरी है. मंज़िल का वेपॉइंट. |
travelMode |
ज़रूरी नहीं. इससे यात्रा के साधन के बारे में पता चलता है. |
intermediateWaypoints[] |
ज़रूरी नहीं. यात्रा शुरू करने की जगह और मंज़िल के बीच के स्टॉप, जहां से क्रम से गुज़रना है. ज़्यादा से ज़्यादा 10 इंटरमीडिएट वेपॉइंट इस्तेमाल किए जा सकते हैं. |
routingPreference |
ज़रूरी नहीं. इससे यह तय होता है कि रास्ते का हिसाब लगाने के लिए, ट्रैफ़िक डेटा का इस्तेमाल कैसे किया जाए. |
locationBias |
ज़रूरी नहीं. कोई ऐसी जगह जिसके हिसाब से खोज के नतीजे दिखाए जाएं. उदाहरण के लिए, वेपॉइंट टेक्स्ट क्वेरी को साफ़ तौर पर समझने के लिए. |
includePolyline |
ज़रूरी नहीं. जवाब में दिए गए रास्तों में, एन्कोड की गई पॉलीलाइन को शामिल करना है या नहीं. डिफ़ॉल्ट रूप से, यह |
computeAlternativeRoutes |
ज़रूरी नहीं. सुझाए गए रास्ते के अलावा, अन्य रास्तों का हिसाब लगाना है या नहीं. यह डिफ़ॉल्ट रूप से 'गलत' पर सेट होता है. इस मामले में, सिर्फ़ सुझाया गया रास्ता दिखता है. 'सही है' पर सेट होने पर, सभी उपलब्ध रास्ते दिखाए जाते हैं. हालांकि, ऐसा हो सकता है कि हर अनुरोध के लिए अन्य रास्ते उपलब्ध न हों. |
यूनियन फ़ील्ड timing. इससे पता चलता है कि शुरुआती जगह से कब निकलना है या आखिरी वेपॉइंट पर कब पहुंचना है. अगर कोई वैल्यू नहीं दी जाती है, तो डिफ़ॉल्ट रूप से इसकी वैल्यू मौजूदा समय पर सेट होती है. TRANSIT के लिए, समय ज़्यादा से ज़्यादा सात दिन पहले और ज़्यादा से ज़्यादा 100 दिन बाद का होना चाहिए. यात्रा के अन्य तरीकों के लिए, समय बीत चुका नहीं होना चाहिए. साथ ही, यह आने वाले समय में ज़्यादा से ज़्यादा 365 दिनों का होना चाहिए. timing इनमें से सिर्फ़ एक हो सकता है: |
|
departureTime |
ज़रूरी नहीं. इससे पता चलता है कि रास्ते का हिसाब, निकलने के समय के आधार पर लगाया जाना चाहिए. यह आरएफ़सी 3339 का इस्तेमाल करता है. इसमें जनरेट किया गया आउटपुट हमेशा Z-नॉर्मलाइज़ किया जाएगा और इसमें 0, 3, 6 या 9 फ़्रैक्शनल अंक इस्तेमाल किए जाएंगे. "Z" के अलावा, अन्य ऑफ़सेट भी स्वीकार किए जाते हैं. उदाहरण: |
arrivalTime |
ज़रूरी नहीं. इससे पता चलता है कि रास्ते का हिसाब, पहुंचने के समय के आधार पर लगाया जाना चाहिए. यह आरएफ़सी 3339 का इस्तेमाल करता है. इसमें जनरेट किया गया आउटपुट हमेशा Z-नॉर्मलाइज़ किया जाएगा और इसमें 0, 3, 6 या 9 फ़्रैक्शनल अंक इस्तेमाल किए जाएंगे. "Z" के अलावा, अन्य ऑफ़सेट भी स्वीकार किए जाते हैं. उदाहरण: |
टाइमस्टैम्प
| JSON के काेड में दिखाना |
|---|
{ "seconds": string, "nanos": integer } |
| फ़ील्ड | |
|---|---|
seconds |
यह Unix epoch 1970-01-01T00:00:00Z के बाद से, यूटीसी समय के सेकंड दिखाता है. यह -62135596800 और 253402300799 के बीच होना चाहिए. इसमें ये दोनों संख्याएं भी शामिल हैं. यह 0001-01-01T00:00:00Z से 9999-12-31T23:59:59Z के बीच होना चाहिए. |
nanos |
नैनोसेकंड रिज़ॉल्यूशन में सेकंड के नॉन-नेगेटिव फ़्रैक्शन. यह फ़ील्ड, अवधि का नैनोसेकंड वाला हिस्सा है. यह सेकंड का विकल्प नहीं है. फ़्रैक्शन वाली नेगेटिव सेकंड वैल्यू में, अब भी नॉन-नेगेटिव नैनो वैल्यू होनी चाहिए. ये वैल्यू, समय के साथ आगे बढ़ती हैं. यह संख्या 0 से 99,99,99,999 के बीच होनी चाहिए. हालांकि, इन दोनों में से भी कोई संख्या हो सकती है. |
वेपॉइंट
| JSON के काेड में दिखाना |
|---|
{ // Union field |
| फ़ील्ड | |
|---|---|
यूनियन फ़ील्ड location_type. किसी जगह को दिखाने के अलग-अलग तरीके. location_type इनमें से सिर्फ़ एक हो सकता है: |
|
latLng |
भौगोलिक निर्देशांकों का इस्तेमाल करके तय किया गया पॉइंट. |
placeId |
वेपॉइंट से जुड़ा जगह का आईडी. |
address |
किसी व्यक्ति के लिए आसानी से पढ़ा जा सकने वाला पता या Plus Code. ज़्यादा जानकारी के लिए, https://plus.codes पर जाएं. |
LatLng
| JSON के काेड में दिखाना |
|---|
{ "latitude": number, "longitude": number } |
| फ़ील्ड | |
|---|---|
latitude |
डिग्री में अक्षांश. यह [-90.0, +90.0] की रेंज में होना चाहिए. |
longitude |
डिग्री में देशांतर. यह [-180.0, +180.0] की रेंज में होना चाहिए. |
RouteTravelMode
वैल्यू का एक सेट, जिसका इस्तेमाल यात्रा के मोड की जानकारी देने के लिए किया जाता है.
| Enums | |
|---|---|
ROUTE_TRAVEL_MODE_UNSPECIFIED |
यात्रा का कोई मोड नहीं चुना गया. डिफ़ॉल्ट रूप से, यह DRIVE पर सेट होता है. |
DRIVE |
कार से यात्रा करें. |
WALK |
पैदल यात्रा करना. ध्यान दें: WALK रूट, बीटा वर्शन में हैं. इसलिए, हो सकता है कि कभी-कभी इनमें साफ़ फ़ुटपाथ या पैदल चलने के रास्ते न दिखें. आपको अपने ऐप्लिकेशन में पैदल चलने के लिए दिखाए जाने वाले सभी रास्तों के लिए, उपयोगकर्ता को यह चेतावनी दिखानी होगी. |
BICYCLE |
साइकल से यात्रा करें. |
TRANSIT |
सार्वजनिक परिवहन (बस, मेट्रो वगैरह) से यात्रा करें. |
RoutingPreference
वैल्यू का एक सेट, जो रास्ते का हिसाब लगाते समय ध्यान में रखे जाने वाले फ़ैक्टर के बारे में बताता है.
| Enums | |
|---|---|
ROUTING_PREFERENCE_UNSPECIFIED |
रूटिंग की कोई प्राथमिकता तय नहीं की गई है. डिफ़ॉल्ट रूप से, यह ROUTING_PREFERENCE_TRAFFIC_UNAWARE पर सेट होता है. |
ROUTING_PREFERENCE_TRAFFIC_UNAWARE |
यह लाइव ट्रैफ़िक का हाल ध्यान में रखे बिना, रास्तों का हिसाब लगाता है. यह तब सही होता है, जब ट्रैफ़िक की स्थिति से कोई फ़र्क़ न पड़ता हो या वह लागू न हो. इस वैल्यू का इस्तेमाल करने पर, सबसे कम इंतज़ार का समय मिलता है. |
ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL |
ट्रैफ़िक की जानकारी उपलब्ध होने पर, ट्रैफ़िक का हाल ध्यान में रखकर रास्ते का हिसाब लगाता है. इस वैल्यू से Pro टियर ट्रिगर होगा. साथ ही, बिलिंग की कुल लागत और इंतज़ार का समय बढ़ जाएगा. यह सुविधा सिर्फ़ अनुमति वाली सूची में शामिल ग्राहकों के लिए उपलब्ध है. अगर अनुमति वाली सूची में शामिल नहीं किया जाता है, तो अनुरोध |
आउटपुट स्कीमा
ComputeRoutesResponse.
ComputeRoutesResponse
| JSON के काेड में दिखाना |
|---|
{
"routes": [
{
object ( |
| फ़ील्ड | |
|---|---|
routes[] |
इसमें अनुरोध की गई शुरुआत की जगह और मंज़िल के बीच के रास्ते शामिल होते हैं. इन्हें सबसे ज़्यादा सुझाए गए रास्ते से लेकर सबसे कम सुझाए गए रास्ते के क्रम में लगाया जाता है. सिर्फ़ एक रास्ता दिखाया जाता है. हालांकि, अगर |
रास्ता
| JSON के काेड में दिखाना |
|---|
{
"distanceMeters": integer,
"duration": string,
"attribution": {
object ( |
| फ़ील्ड | |
|---|---|
distanceMeters |
रास्ते की दूरी, मीटर में. |
duration |
रास्ते पर नेविगेट करने में लगने वाला समय. सेकंड में अवधि, जिसमें नौ फ़्रैक्शनल अंक हो सकते हैं. यह ' |
attribution |
रास्ते के साथ दिखाने के लिए ज़रूरी एट्रिब्यूशन. |
encodedPolyline |
रास्ते की एन्कोड की गई पॉलीलाइन. https://developers.google.com/maps/documentation/utilities/polylinealgorithm देखें |
retrievalToken |
एक टोकन, जिसका इस्तेमाल SearchAlongRoute जैसे डाउनस्ट्रीम टूल में इस खास रास्ते को वापस पाने के लिए किया जा सकता है. यह 10 मिनट के लिए मान्य है. |
कुल समय
| JSON के काेड में दिखाना |
|---|
{ "seconds": string, "nanos": integer } |
| फ़ील्ड | |
|---|---|
seconds |
समय अवधि के सेकंड. यह -315,576,000,000 से +315,576,000,000 के बीच होना चाहिए. ध्यान दें: इन सीमाओं का हिसाब इस तरह लगाया जाता है: 60 सेकंड/मिनट * 60 मिनट/घंटा * 24 घंटे/दिन * 365.25 दिन/साल * 10,000 साल |
nanos |
समय की अवधि के नैनोसेकंड रिज़ॉल्यूशन पर, सेकंड के साइन किए गए फ़्रैक्शन. एक सेकंड से कम की अवधि को 0 |
एट्रिब्यूशन
| JSON के काेड में दिखाना |
|---|
{ "title": string, "url": string } |
| फ़ील्ड | |
|---|---|
title |
एट्रिब्यूशन के लिए दिखाया जाने वाला टाइटल. |
url |
एट्रिब्यूशन के लिए लिंक किया जाने वाला यूआरएल. |
टूल एनोटेशन
एमसीपी क्लाइंट को टूल एनोटेशन भेजे जाते हैं, ताकि किसी टूल से जुड़े बुनियादी जोखिम के बारे में बताया जा सके. ज़्यादातर क्लाइंट इन संकेतों को भरोसेमंद नहीं मानते. हालांकि, इनका इस्तेमाल यह तय करने के लिए किया जा सकता है कि उपयोगकर्ता को पुष्टि करने का प्रॉम्प्ट कब भेजा जाए.
टाइटल स्ट्रिंग के साथ-साथ, बूलियन हिंट के बारे में यहां बताया गया है:
readOnlyHint: अगर इसकी वैल्यू true है, तो टूल अपने एनवायरमेंट में बदलाव नहीं करता. डिफ़ॉल्ट: false.destructiveHint: अगर इसकी वैल्यू true है, तो टूल नुकसान पहुंचाने वाली कार्रवाइयां कर सकता है. अगर यह वैल्यू false पर सेट है, तो टूल सिर्फ़ जोड़ने वाली कार्रवाइयां कर सकता है. डिफ़ॉल्ट: true.idempotentHint: अगर इसकी वैल्यू true है, तो टूल को एक ही आर्ग्युमेंट के साथ बार-बार कॉल करने पर, उसके एनवायरमेंट पर कोई और असर नहीं पड़ेगा. डिफ़ॉल्ट: false.openWorldHint: सही होने पर, टूल बाहरी इकाइयों की 'विशाल दुनिया' के साथ इंटरैक्ट कर सकता है. अगर यह वैल्यू false है, तो टूल सिर्फ़ इंटरनल इकाइयों के साथ इंटरैक्ट कर सकता है. उदाहरण के लिए, वेब सर्च टूल ओपन वर्ल्ड होगा, जबकि मेमोरी टूल ओपन वर्ल्ड नहीं होगा.
Destructive Hint: ❌ | Idempotent Hint: ❌ | Read Only Hint: ✅ | Open World Hint: ❌