টুল: compute_routes
যাত্রা শুরুর স্থান ও গন্তব্যের মধ্যে ভ্রমণের রুট গণনা করে, ঐচ্ছিকভাবে মধ্যবর্তী স্টপের মাধ্যমে। প্রতিটি রুটের দূরত্ব ও সময়কাল দেখায়।
ইনপুট সংক্রান্ত প্রয়োজনীয়তা (গুরুত্বপূর্ণ):
originএবংdestination(অবজেক্ট - বাধ্যতামূলক): প্রতিটি অবশ্যই নিম্নলিখিতগুলির মধ্যে ঠিক একটি ব্যবহার করে প্রদান করতে হবে:address(স্ট্রিং, যেমন,'Eiffel Tower, Paris')। নামযুক্ত জায়গা, ল্যান্ডমার্ক ও ব্যবসা সরাসরি সমাধান করা হয়, তাই কোনও ওয়েপয়েন্ট জিওকোড করার জন্য প্রথমেsearch_placesকল করবেন না। ব্যবহারকারীর উল্লেখ করা যেকোনও শহর, অঞ্চল বা দেশ অন্তর্ভুক্ত করুন।lat_lng(অবজেক্ট,{"latitude": number, "longitude": number})।place_id(স্ট্রিং, যেমন,'ChIJOwE_Id1w5EAR4Q27FkL6T_0'), উদাহরণস্বরূপsearch_placesথেকে।
intermediate_waypoints(অবজেক্টের অ্যারে - ঐচ্ছিক): যাত্রা শুরুর স্থান ও গন্তব্যের মধ্যে, ক্রমানুসারে, সর্বাধিক ১০টি স্টপ।origin-এর মতো একই ফর্ম্যাট।TRANSIT-এর সাথে কাজ করে না। ব্যবহারকারী যেসব স্টপের জন্য অনুরোধ করেছেন শুধুমাত্র সেগুলিই অন্তর্ভুক্ত করুন।travel_mode(enum - ঐচ্ছিক):DRIVE(ডিফল্ট),WALK,BICYCLEঅথবাTRANSIT।সময় (ঐচ্ছিক - সর্বাধিক একটি সেট করুন): UTC অফসেট সহ RFC 3339 টাইমস্ট্যাম্প, যেমন,
'2026-09-19T08:00:00-07:00'। ডিফল্ট হিসেবে এখন ছাড়ার সময় সেট করা থাকে।TRANSIT-এর জন্য, সময়টি অতীতে সর্বাধিক ৭ দিন বা ভবিষ্যতে সর্বাধিক ১০০ দিন হতে পারে। অন্যান্য মোডের ক্ষেত্রে, সময় ভবিষ্যতের ৩৬৫ দিন পর্যন্ত হতে পারে এবং অতীতের হলে চলবে না।departure_time: ব্যবহারকারী কখন রওনা দেবেন তা উল্লেখ করলে এটি ব্যবহার করুন (যেমন, "আগামীকাল সকাল ৮টায়")।arrival_time: ব্যবহারকারী কখন পৌঁছাবেন তা উল্লেখ করলে এটি ব্যবহার করুন (যেমন, "সকাল ৯টার মধ্যে পৌঁছাতে হবে")।
routing_preference(enum - ঐচ্ছিক):ROUTING_PREFERENCE_TRAFFIC_UNAWARE(ডিফল্ট): লাইভ ট্রাফিক, ঘটনা এবং রাস্তা বন্ধের তথ্য উপেক্ষা করে। সবচেয়ে কম লেটেন্সি।ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL: উপলভ্য থাকলে লাইভ ট্রাফিক পরিস্থিতি ব্যবহার করে।WALKবাBICYCLE-এর জন্য কাজ করে না। ব্যবহারকারী ট্রাফিক, যানজট বা ট্রাফিক-অ্যাডজাস্ট করা ETA সম্পর্কে জিজ্ঞাসা করলে তবেই এটি সেট করুন। এতে বেশি খরচ ও লেটেন্সি হয়।
location_bias(অবজেক্ট - ঐচ্ছিক):{"latitude": number, "longitude": number}ওয়েপয়েন্ট অ্যাড্রেসে জায়গার নাম দ্ব্যর্থহীন করতে ব্যবহার করা হয়। কোনও নাম অস্পষ্ট হলে (যেমন, "Springfield") এবং ব্যবহারকারী কোনও অঞ্চল উল্লেখ না করলে,address-এ যেমন নাম দেওয়া আছে তেমনই রাখুন এবং কোনও অঞ্চল অনুমান করার পরিবর্তেlocation_bias-কে অভিপ্রেত এলাকার দিকে সেট করুন।compute_alternative_routes(বুলিয়ান - ঐচ্ছিক): ব্যবহারকারী রুটের বিকল্প বা অল্টারনেটিভ চাইলে তবেইtrue-এ সেট করুন। ডিফল্ট হিসেবেfalseসেট করা থাকে, যা শুধু সাজেস্ট করা রুট দেখায়।include_polyline(বুলিয়ান - ঐচ্ছিক): শুধুমাত্র রুট জিওমেট্রি (encoded_polyline) প্রয়োজন হলেtrue-এ সেট করুন। ডিফল্ট হিসেবেfalseসেট করা থাকে।
টুল কলের জন্য নির্দেশাবলী:
- শুরু বা গন্তব্যের জায়গা উল্লেখ করা না থাকলে, টুল কল করার আগে আপনাকে অবশ্যই ব্যবহারকারীকে স্পষ্ট করে বলতে হবে।
- "B থেকে A কত দূরে?" প্রশ্নের জন্য, B-কে
originএবং A-কেdestinationহিসেবে ব্যবহার করুন।
টুল কলের উদাহরণ: {"origin":{"address":"আইফেল টাওয়ার"},"destination":{"place_id":"ChIJt_5xIthw5EARoJ71mGq7t74"},"intermediate_waypoints":[{"address":"লুভর মিউজিয়াম"}],"travel_mode":"DRIVE","departure_time":"2026-09-19T08:00:00+02:00"}
উত্তরের জন্য নির্দেশাবলী:
- বিকল্প রুটের অনুরোধ করা হলে, সবচেয়ে বেশি থেকে সবচেয়ে কম সাজেস্ট করা রুট হিসেবে সেগুলি সাজানো হয়।
routesখালি থাকলে, ব্যবহারকারীকে বলো যে কোনও রুট খুঁজে পাওয়া যায়নি। কোনও রুট অনুমান করবেন না।- টুল থেকে পাওয়া ফ্যাক্টগুলিই শুধু উল্লেখ করো। এক এক করে দিকনির্দেশ, ট্রানজিট লাইন, স্টেশন, প্ল্যাটফর্ম বা ট্রান্সফার সংক্রান্ত তথ্য নিজে থেকে তৈরি করবেন না।
- গ্রাউন্ডেড আউটপুট অবশ্যই প্রতিটি রুটের
attributionফিল্ড ব্যবহার করে সোর্সের সাথে অ্যাট্রিবিউট করতে হবে, যখন উপলভ্য থাকে।
compute_routes MCP টুল কল করার জন্য কীভাবে curl ব্যবহার করতে হয় তা নিম্নলিখিত কোড স্যাম্পেল থেকে জানতে পারবেন।
| 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[] |
ঐচ্ছিক। যাত্রা শুরুর স্থান ও গন্তব্যের মধ্যে যে স্টপেজগুলি আছে, সেগুলি ক্রমানুসারে দেখানো হয়েছে। সর্বাধিক ১০টি মধ্যবর্তী ওয়েপয়েন্ট কাজ করে। |
routingPreference |
ঐচ্ছিক। রুট গণনা করার জন্য ট্রাফিক ডেটা কীভাবে ব্যবহার করা হয় তা নির্ধারণ করে। |
locationBias |
ঐচ্ছিক। সার্চ ফলাফলকে কোনও লোকেশনের দিকে বায়াস করা, যেমন, ওয়েপয়েন্ট টেক্সট কোয়েরি থেকে অস্পষ্টতা দূর করা। |
includePolyline |
ঐচ্ছিক। রেসপন্স রুটে এনকোড করা পলিলাইন অন্তর্ভুক্ত করা হবে কিনা। ডিফল্ট হিসেবে |
computeAlternativeRoutes |
ঐচ্ছিক। সাজেস্ট করা রুট ছাড়াও বিকল্প রুট গণনা করা হবে কিনা। ডিফল্ট হিসেবে false সেট করা থাকে, সেক্ষেত্রে শুধু সাজেস্ট করা রুট দেখানো হয়। 'সত্য' হিসেবে সেট করা হলে, উপলভ্য সব রুট দেখানো হয়, যদিও প্রতিটি অনুরোধের জন্য বিকল্প উপলভ্য নাও হতে পারে। |
timing ফিল্ড একত্রিত করুন। যাত্রা শুরু করার জায়গা থেকে কখন রওনা দিতে হবে বা গন্তব্যে কখন পৌঁছাতে হবে তা উল্লেখ করে। উল্লেখ করা না থাকলে, ডিফল্ট হিসেবে বর্তমান সময়ে রওনা হওয়ার কথা বলা হয়। TRANSIT-এর জন্য, সময়টি অবশ্যই অতীতে সর্বাধিক ৭ দিন এবং ভবিষ্যতে সর্বাধিক ১০০ দিন হতে হবে। অন্যান্য ট্রাভেল মোডের ক্ষেত্রে, সময়টি অবশ্যই অতীতের হতে পারবে না এবং ভবিষ্যতে সর্বাধিক ৩৬৫ দিনের হতে হবে। timing শুধুমাত্র নিম্নলিখিতগুলির মধ্যে একটি হতে পারে: |
|
departureTime |
ঐচ্ছিক। এটি ইঙ্গিত করে যে রুটটি ছাড়ার সময়ের উপর ভিত্তি করে গণনা করা উচিত। RFC 3339 ব্যবহার করে, যেখানে জেনারেট করা আউটপুট সবসময় Z-নরমালাইজড হবে এবং ০, ৩, ৬ বা ৯টি ভগ্নাংশ সংখ্যা ব্যবহার করবে। "Z" ছাড়া অন্যান্য অফসেটও গ্রহণ করা হয়। যেমন: |
arrivalTime |
ঐচ্ছিক। এটি দেখায় যে পৌঁছানোর সময়ের উপর ভিত্তি করে রুট গণনা করা উচিত। RFC 3339 ব্যবহার করে, যেখানে জেনারেট করা আউটপুট সবসময় Z-নরমালাইজড হবে এবং ০, ৩, ৬ বা ৯টি ভগ্নাংশ সংখ্যা ব্যবহার করবে। "Z" ছাড়া অন্যান্য অফসেটও গ্রহণ করা হয়। যেমন: |
টাইমস্ট্যাম্প
| JSON উপস্থাপনা |
|---|
{ "seconds": string, "nanos": integer } |
| ফিল্ড | |
|---|---|
seconds |
Unix epoch 1970-01-01T00:00:00Z থেকে UTC সময়ের সেকেন্ড দেখায়। অবশ্যই -৬২১৩৫৫৯৬৮০০ এবং ২৫৩৪০২৩০০৭৯৯-এর মধ্যে হতে হবে (যা 0001-01-01T00:00:00Z থেকে 9999-12-31T23:59:59Z-এর সাথে সম্পর্কিত)। |
nanos |
ন্যানোসেকেন্ড রেজোলিউশনে সেকেন্ডের অ-ঋণাত্মক ভগ্নাংশ। এই ফিল্ডটি সময়সীমার ন্যানোসেকেন্ড অংশ, সেকেন্ডের বিকল্প নয়। ভগ্নাংশ সহ নেগেটিভ সেকেন্ড ভ্যালুতে এখনও নন-নেগেটিভ ন্যানো ভ্যালু থাকতে হবে যা সময়ের সাথে সাথে গণনা করা হয়। ০ থেকে ৯৯৯,৯৯৯,৯৯৯-এর মধ্যে হতে হবে। |
Waypoint
| JSON উপস্থাপনা |
|---|
{ // Union field |
| ফিল্ড | |
|---|---|
location_type ফিল্ড একত্রিত করুন। কোনও লোকেশন দেখানোর বিভিন্ন উপায়। location_type শুধুমাত্র নিম্নলিখিতগুলির মধ্যে একটি হতে পারে: |
|
latLng |
ভৌগোলিক স্থানাঙ্ক ব্যবহার করে নির্দিষ্ট করা একটি পয়েন্ট। |
placeId |
ওয়েপয়েন্টের সাথে যুক্ত প্লেস আইডি। |
address |
মানুষের-পঠনযোগ্য ঠিকানা বা প্লাস কোড। আরও তথ্যের জন্য https://plus.codes দেখুন। |
LatLng
| JSON উপস্থাপনা |
|---|
{ "latitude": number, "longitude": number } |
| ফিল্ড | |
|---|---|
latitude |
ডিগ্রিতে অক্ষাংশ। এটি অবশ্যই [-৯০.০, +৯০.০] রেঞ্জের মধ্যে হতে হবে। |
longitude |
ডিগ্রিতে দ্রাঘিমাংশ। এটি অবশ্যই [-১৮০.০, +১৮০.০] রেঞ্জের মধ্যে হতে হবে। |
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-এর মতো ডাউনস্ট্রিম টুলে এই নির্দিষ্ট রুট ফিরিয়ে আনতে ব্যবহার করা যেতে পারে। ১০ মিনিট পর্যন্ত কার্যকর থাকবে। |
সময়সীমা
| JSON উপস্থাপনা |
|---|
{ "seconds": string, "nanos": integer } |
| ফিল্ড | |
|---|---|
seconds |
সময়ের ব্যাপ্তির সাইন করা সেকেন্ড। -৩১৫,৫৭৬,০০০,০০০ থেকে +৩১৫,৫৭৬,০০০,০০০-এর মধ্যে হতে হবে। মনে রাখবেন: এই সীমাগুলি এইভাবে গণনা করা হয়: ৬০ সেকেন্ড/মিনিট * ৬০ মিনিট/ঘণ্টা * ২৪ ঘণ্টা/দিন * ৩৬৫.২৫ দিন/বছর * ১০০০০ বছর |
nanos |
সময়ের ব্যাপ্তির ন্যানোসেকেন্ড রেজোলিউশনে সেকেন্ডের সাইন করা ভগ্নাংশ। এক সেকেন্ডের কম সময়কে 0 |
অ্যাট্রিবিউশন
| JSON উপস্থাপনা |
|---|
{ "title": string, "url": string } |
| ফিল্ড | |
|---|---|
title |
অ্যাট্রিবিউশনের জন্য দেখানোর শীর্ষক। |
url |
অ্যাট্রিবিউশনের জন্য লিঙ্ক করার URL। |
টুল অ্যানোটেশন
প্রদত্ত টুলের প্রাথমিক ঝুঁকি বর্ণনা করার জন্য MCP ক্লায়েন্টদের টুল অ্যানোটেশন পাঠানো হয়। বেশিরভাগ ক্লায়েন্ট এইসব ইঙ্গিতকে বিশ্বাসযোগ্য বলে মনে করে না, তবে ব্যবহারকারীকে কখন কনফার্মেশন প্রম্পট পাঠানো হবে তা নির্ধারণ করতে এগুলি ব্যবহার করা যেতে পারে।
টাইটেল স্ট্রিংয়ের সাথে, নিম্নলিখিত বুলিয়ান হিন্ট এইভাবে সংজ্ঞায়িত করা হয়:
readOnlyHint: সত্য হলে, টুলটি তার পরিবেশ পরিবর্তন করে না। ডিফল্ট: false.destructiveHint: সত্য হলে, টুলটি ধ্বংসাত্মক অ্যাকশন করতে পারে। মিথ্যা হলে, টুলটি শুধুমাত্র যোগ করার অ্যাকশন করতে পারে। ডিফল্ট: true.idempotentHint: সত্য হলে, একই আর্গুমেন্ট সহ টুলটিকে বারবার কল করলে এর এনভায়রনমেন্টে কোনও অতিরিক্ত প্রভাব পড়বে না। ডিফল্ট: false.openWorldHint: সত্য হলে, টুলটি এক্সটার্নাল এন্টিটির 'মুক্ত পৃথিবী'-র সাথে ইন্টার্যাক্ট করতে পারে। মিথ্যা হলে, টুলটি শুধুমাত্র অভ্যন্তরীণ এন্টিটির সাথে ইন্টার্যাক্ট করতে পারে। যেমন, ওয়েব সার্চ টুল ওপেন ওয়ার্ল্ড হলেও মেমরি টুল ওপেন ওয়ার্ল্ড নয়।
Destructive Hint: ❌ | Idempotent Hint: ❌ | Read Only Hint: ✅ | Open World Hint: ❌