একাধিক উৎস এবং গন্তব্যের জন্য একটি রুটের দূরত্ব ও সময়কাল গণনা করতে, REST-এর computeRouteMatrix মেথড অথবা gRPC-এর স্ট্রিমিং ComputeRouteMatrix মেথড কল করে Routes API ব্যবহার করুন।
উৎস এবং গন্তব্যস্থলের একটি তালিকা দেওয়া থাকলে, এই পদ্ধতিটি প্রতিটি উৎস থেকে শুরু হয়ে প্রতিটি গন্তব্যে শেষ হওয়া একটি পথের দূরত্ব এবং সময়কাল গণনা করে।
একটি ট্রানজিট রুট ম্যাট্রিক্স পান
আপনি ট্রানজিটে একটি রুট ম্যাট্রিক্সও গণনা করতে পারেন। একটি উদাহরণের জন্য, ট্রানজিটে একটি রুট ম্যাট্রিক্স কীভাবে পাবেন তা দেখুন।
অনুরোধের সীমা
'Compute Route Matrix' মেথডগুলো address বা placeID ব্যবহার করে ওয়েপয়েন্ট এবং এলিমেন্টগুলোর জন্য নিম্নলিখিত রিকোয়েস্ট লিমিটগুলো প্রয়োগ করে। এলিমেন্টগুলো হলো একটি রুট ম্যাট্রিক্সের প্রতিটি অরিজিন এবং ডেস্টিনেশনের মধ্যবর্তী রুট, তাই এলিমেন্টের সংখ্যা হলো অরিজিনের সংখ্যা ও ডেস্টিনেশনের সংখ্যার গুণফল। উদাহরণস্বরূপ, যদি আপনার ১০টি অরিজিন এবং ১০টি ডেস্টিনেশন থাকে, তাহলে আপনার ১০০টি এলিমেন্ট থাকবে:
যেসব রুট
TRANSITরুট নয়, সেগুলোর ক্ষেত্রে উপাদানের সংখ্যা ৬২৫-এর বেশি হতে পারবে না।আপনি যদি একটি
TRANSITরুট নির্দিষ্ট করেন , তাহলে উপাদানের সংখ্যা ১০০-এর বেশি হতে পারবে না।আপনি যদি
TRAFFIC_AWARE_OPTIMALনির্দিষ্ট করেন , তাহলে উপাদানের সংখ্যা ১০০-এর বেশি হতে পারবে না।TRAFFIC_AWARE_OPTIMALসম্পর্কে আরও তথ্যের জন্য, “ট্র্যাফিক ডেটা কীভাবে এবং অন্তর্ভুক্ত করবেন কিনা তা নির্দিষ্ট করুন” দেখুন।যদি আপনি ঠিকানা বা স্থান আইডি ব্যবহার করে উৎস বা গন্তব্য নির্দিষ্ট করেন , তাহলে এভাবে মোট ৫০টি পর্যন্ত নির্দিষ্ট করা যায়।
প্রতিক্রিয়া ত্রুটি
Compute Route Matrix মেথডগুলোর একটি বৈশিষ্ট্য হলো, সম্পূর্ণ রেসপন্স অথবা রেসপন্সের স্বতন্ত্র উপাদানগুলোর জন্যেও এরর রিটার্ন করা যেতে পারে। উদাহরণস্বরূপ, যদি রিকোয়েস্টটি ত্রুটিপূর্ণ হয় (যেমন, এতে কোনো অরিজিন নেই), তাহলে সম্পূর্ণ রেসপন্সটিতেই একটি এরর থাকে।
তবে, যদি কোনো ত্রুটি রেসপন্সের উপাদানগুলোর একটি উপসেটের ক্ষেত্রে প্রযোজ্য হয় (উদাহরণস্বরূপ, উৎস এবং গন্তব্যের কোনো একটি নির্দিষ্ট সংমিশ্রণের জন্য একটি রুট গণনা করা না যায়), তাহলে শুধুমাত্র ত্রুটি দ্বারা প্রভাবিত উপাদানগুলোই একটি ত্রুটি কোড ফেরত দেয়।
gRPC স্ট্রিম ফলাফল
ComputeRouteMatrix gRPC মেথডটি অরিজিন এবং ডেস্টিনেশনের একটি তালিকা গ্রহণ করে এবং অরিজিন ও ডেস্টিনেশনের প্রতিটি সমন্বয়ের জন্য রুটের তথ্য সম্বলিত একটি স্ট্রিম ফেরত দেয়। যেহেতু ফলাফলগুলো একটি স্ট্রিম হিসেবে ফেরত আসে, তাই ফলাফল প্রক্রিয়াকরণ শুরু করার আগে সমস্ত সম্ভাব্য রুটের সমন্বয় গণনা করা পর্যন্ত আপনাকে অপেক্ষা করতে হয় না।
স্ট্রিম দ্বারা ফেরত আসা উপাদানগুলো যে কোনো ক্রমে ফেরত আসবে, এমন কোনো নিশ্চয়তা নেই। তাই, প্রতিটি রেসপন্স এলিমেন্টে একটি origin_index এবং একটি destination_index থাকে। রিকোয়েস্ট দ্বারা নির্দিষ্ট করা অরিজিন এবং ডেস্টিনেশনগুলোর জন্য, একটি নির্দিষ্ট এলিমেন্টের ক্ষেত্রে রুট origin হলো origins[origin_index] এর সমতুল্য এবং রুট destination হলো destinations[destination_index] এর সমতুল্য। এই অ্যারেগুলো জিরো-ইনডেক্সড। অরিজিন এবং ডেস্টিনেশন তালিকার ক্রম সংরক্ষণ করা গুরুত্বপূর্ণ।
রুট ম্যাট্রিক্স গণনার উদাহরণ
একটি রাউট ম্যাট্রিক্স গণনা করতে HTTP অনুরোধে computeRouteMatrix পদ্ধতিটি ব্যবহার করুন।
HTTP উদাহরণ
নিম্নলিখিত উদাহরণটি একটি computeRouteMatrix HTTP অনুরোধ দেখায়। এই উদাহরণে আপনি:
দুটি উৎস এবং দুটি গন্তব্য ওয়েপয়েন্টের একটি অ্যারে নির্দিষ্ট করুন। এই মেথডটি প্রতিটি উৎস থেকে প্রতিটি গন্তব্যে যাওয়ার জন্য একটি রুট গণনা করে, ফলে রেসপন্সে চারটি রুট থাকে।
অ্যারেটিতে প্রথম উপাদানটির ইন্ডেক্স ০, দ্বিতীয়টির ইন্ডেক্স ১, এবং এভাবেই চলতে থাকে।
রেসপন্স (REST) বা ComputeRoutesResponse (gRPC)-এর কোন ফিল্ডগুলো ফেরত দেওয়া হবে তা নির্দিষ্ট করতে একটি রেসপন্স ফিল্ড মাস্ক অন্তর্ভুক্ত করুন। এই উদাহরণে, প্রতিটি রুটের জন্য
originIndex,destinationIndex,duration,distanceMeters,statusএবংconditionফেরত দেওয়ার জন্য রিকোয়েস্টটি কনফিগার করুন। আরও তথ্যের জন্য, "ফেরত দেওয়ার জন্য ফিল্ড নির্বাচন করুন " দেখুন।
curl -X POST -d '{ "origins": [ { "waypoint": { "location": { "latLng": { "latitude": 37.420761, "longitude": -122.081356 } } }, "routeModifiers": { "avoid_ferries": true} }, { "waypoint": { "location": { "latLng": { "latitude": 37.403184, "longitude": -122.097371 } } }, "routeModifiers": { "avoid_ferries": true} } ], "destinations": [ { "waypoint": { "location": { "latLng": { "latitude": 37.420999, "longitude": -122.086894 } } } }, { "waypoint": { "location": { "latLng": { "latitude": 37.383047, "longitude": -122.044651 } } } } ], "travelMode": "DRIVE", "routingPreference": "TRAFFIC_AWARE" }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status,condition' \ 'https://routes.googleapis.com/distanceMatrix/v2:computeRouteMatrix'
প্রতিক্রিয়াটিতে সমস্ত উৎস এবং গন্তব্য ওয়েপয়েন্টগুলির সমন্বয়ের জন্য চারটি সম্ভাব্য পথ অন্তর্ভুক্ত রয়েছে।
রেসপন্সের originIndex এবং destinationIndex ফিল্ড ব্যবহার করে প্রতিটি রুট শনাক্ত করুন। উদাহরণস্বরূপ, রেসপন্সের originIndex ১ হলে, তা রিকোয়েস্টের origins অ্যারের ১ নম্বর ইনডেক্সে থাকা ওয়েপয়েন্ট থেকে গণনা করা একটি রুটকে নির্দেশ করে।
[ { "originIndex": 0, "destinationIndex": 0, "status": {}, "distanceMeters": 822, "duration": "160s", "condition": "ROUTE_EXISTS" }, { "originIndex": 1, "destinationIndex": 0, "status": {}, "distanceMeters": 2919, "duration": "361s", "condition": "ROUTE_EXISTS" }, { "originIndex": 1, "destinationIndex": 1, "status": {}, "distanceMeters": 5598, "duration": "402s", "condition": "ROUTE_EXISTS" }, { "originIndex": 0, "destinationIndex": 1, "status": {}, "distanceMeters": 7259, "duration": "712s", "condition": "ROUTE_EXISTS" } ]
gRPC উদাহরণ
উদাহরণস্বরূপ gRPC অনুরোধের জন্য, 'Example gRPC request' পৃষ্ঠার উদাহরণগুলো দেখুন। ঐ পৃষ্ঠার জাভা উদাহরণটি Compute Routes এবং Compute Route Matrix উভয়কেই কল করে।