আপনি ট্রাফিক সংক্রান্ত যে পছন্দ বেছে নেন, তা দুটি উপায়ের মধ্যে একটিতে রুট সংক্রান্ত বিবরণের নির্ভুলতা ও অনুরোধের পারফর্ম্যান্সের মধ্যে ভারসাম্য বজায় রাখে:
- ট্রাফিক সম্পর্কে সচেতন: যতটা সম্ভব সঠিক ফলাফল দেখান (বেশি লেটেন্সি)।
- ট্রাফিক সম্পর্কে সচেতন নয়: যত দ্রুত সম্ভব ফলাফল দাও (সবচেয়ে কম লেটেন্সি)।
আপনি কোনও অনুরোধ করার সময়, সবচেয়ে সঠিক ফলাফল দেখানো ভালো হবে নাকি যত দ্রুত সম্ভব ফলাফল দেখানো ভালো হবে, তা বিবেচনা করুন। Routes লাইব্রেরি এমন বিকল্প প্রদান করে যা আপনাকে উত্তর ডেটার কোয়ালিটি বনাম উত্তরের লেটেন্সি নিয়ন্ত্রণ করতে দেয়।
ট্রাফিক লেভেল ও ট্রাফিক মডেল সেট করা
ট্রাফিক লেভেল নির্দিষ্ট করতে, ComputeRoutesRequest-এ
routingPreference
সেট করুন। নিচে দেওয়া তালিকায় উপলভ্য
routingPreference বিকল্পগুলি দেখানো হয়েছে:
TRAFFIC_UNAWARE(ডিফল্ট): আনুমানিক রাউটিং বিবরণ সহ সবচেয়ে দ্রুত ফলাফল দেখায়।TRAFFIC_AWARE: রিয়েল-টাইম ট্রাফিক ডেটা ব্যবহার করে আরও সঠিক ফলাফল দেখায়, তবে এতে বেশি লেটেন্সি হয়।TRAFFIC_AWARE_OPTIMAL: রিয়েল-টাইম ট্রাফিক ডেটা ব্যবহার করে সবচেয়ে সঠিক ফলাফল দেয়, তবে এতে সবচেয়ে বেশি লেটেন্সি থাকে।
TRAFFIC_MODEL
প্রপার্টি ট্রাফিকের মধ্যে সময়সীমা অনুমান করার সময় ব্যবহার করার জন্য অনুমানকে দেখায় (
TrafficModel.BEST_GUESS (ডিফল্ট),
TrafficModel.OPTIMISTIC,
TrafficModel.PESSIMISTIC).
ট্রাফিক-অ্যাওয়ার রাউটিং কীভাবে বেছে নিতে হয়
ট্রাফিক-সচেতন রুট সংক্রান্ত অনুরোধ তৈরি করতে, এইসব ধাপ অনুসরণ করুন:
-
travelModeপ্রপার্টিDRIVING-এ সেট করুন। -
routingPreferenceপ্রপার্টিকে নিম্নলিখিতগুলির মধ্যে একটিতে সেট করুন:TRAFFIC_AWARETRAFFIC_AWARE_OPTIMAL
মনে রাখবেন:
TRAFFIC_UNAWAREহল ডিফল্ট সেটিং। -
trafficModelপ্রপার্টিকে নিম্নলিখিতগুলির মধ্যে একটিতে সেট করুন: -
extraComputationsপ্রপার্টিকেTRAFFIC_ON_POLYLINEহিসেবে সেট করুন। -
path,speedPathsএবংrouteLabelsফিল্ডের জন্য অনুরোধ করুন।
নিচের অনুরোধের উদাহরণ থেকে বোঝা যায় যে কীভাবে ট্রাফিক-অ্যাওয়ার রুটের জন্য অনুরোধ করতে হয় যা পলিলিনে ট্রাফিক ডেটা দেখায়:
// Define a traffic aware routes request with polylines. const requestWithTraffic = { origin: '200 King St San Francisco, CA 94107', destination: 'Pier 41, San Francisco, CA 94133', travelMode: 'DRIVING', routingPreference: 'TRAFFIC_AWARE_OPTIMAL', trafficModel: 'optimistic', extraComputations: ['TRAFFIC_ON_POLYLINE'], fields: ['speedPaths'], };
ট্রাফিক শর্তাবলী
ট্রাফিক পরিস্থিতি ট্রাফিক ফ্লোয়ের হারকে চিহ্নিত করে:
- স্বাভাবিক ট্রাফিক: ট্রাফিক স্বাভাবিক গতিতে চলছে, কোনও যানজট নেই।
- হালকা থেকে মাঝারি ট্রাফিক: যানজট বাড়ছে, ট্রাফিক কম গতিতে চলছে।
- ভারী ট্রাফিক: খুব বেশি যানজট, ট্রাফিকের গতি অনেক কমে গেছে।
ট্রাফিক সম্পর্কে অবগত নয়
TRAFFIC_UNAWARE হল ডিফল্ট সেটিং। আপনি যখন দ্রুততম সময়ে উত্তর পেতে চান এবং আনুমানিক রাউটিং বিবরণ যথেষ্ট বলে মনে করেন, তখন এই রাউটিং পছন্দ ব্যবহার করুন।
TRAFFIC_UNAWARE রুট গণনা করার সময় বর্তমান ট্রাফিক
পরিস্থিতি বিবেচনা করা হয় না। এই রাউটিং সংক্রান্ত পছন্দ সবচেয়ে দ্রুত অনুরোধের উত্তর (সবচেয়ে কম
লেটেন্সি) প্রদান করে।
আপনি TRAFFIC_UNAWARE বেছে নিলে, বেছে নেওয়া রুট ও সময়সীমা রাস্তার নেটওয়ার্ক ও গড় সময়-নিরপেক্ষ ট্রাফিক পরিস্থিতির উপর নির্ভর করে, বর্তমান রাস্তার পরিস্থিতির উপর নয়।
এর ফলে, রুটে সাময়িকভাবে বন্ধ থাকা রাস্তা অন্তর্ভুক্ত থাকতে পারে। রাস্তার নেটওয়ার্কে পরিবর্তন, আপডেট করা গড় ট্রাফিক
পরিস্থিতি এবং পরিষেবার ডিস্ট্রিবিউটেড প্রকৃতির কারণে, কোনও নির্দিষ্ট অনুরোধের
ফলাফল সময়ের সাথে সাথে পরিবর্তিত হতে পারে। এছাড়াও, যেকোনও সময় বা ফ্রিকোয়েন্সিতে
প্রায়-সমতুল্য রুটের মধ্যে ফলাফল আলাদা হতে পারে।
আপনি এইসব উত্তর দেখতে পাবেন:
duration: রুটের জন্য ETA থাকে।staticDuration: শুধুমাত্র ঐতিহাসিক ট্রাফিক তথ্য বিবেচনা করে রুটের জন্য পৌঁছানোর আনুমানিক সময়।TRAFFIC_UNAWARE-এর জন্য, এতেduration-এর মতো একই ভ্যালু রয়েছে।
ট্রাফিক সচেতন
আপনি যদি TRAFFIC_UNAWARE-এর থেকে আরও সঠিক রাউটিং বিবরণ চান, তাহলে এই রাউটিং প্রেফারেন্স ব্যবহার করুন
এবং উত্তর পেতে কিছুটা বেশি সময় লাগলেও আপনার কোনও অসুবিধা নেই।
আপনি TRAFFIC_AWARE রাউটিং সংক্রান্ত পছন্দ সেট করলে, পরিষেবাটি বর্তমান ট্রাফিক পরিস্থিতি বিবেচনা করে
রুট গণনা করে। এর ফলে, রুট ও রুটের বিবরণ আরও
সঠিকভাবে বাস্তব জগতের পরিস্থিতিকে প্রতিফলিত করে। ডেটার কোয়ালিটি উন্নত করার জন্য রেসপন্স লেটেন্সি
বেড়ে যায়, তাই লেটেন্সি কমানোর জন্য পারফর্ম্যান্স অপ্টিমাইজেশন প্রয়োগ করা হয়।
আপনি এইসব উত্তর দেখতে পাবেন:
duration: রিয়েল-টাইম ট্রাফিক তথ্য বিবেচনা করে ETA।staticDuration: শুধুমাত্র ট্রাফিকের ঐতিহাসিক তথ্য বিবেচনা করে রুটের জন্য পৌঁছানোর আনুমানিক সময়।
ট্রাফিক সচেতন অপ্টিমাল
উত্তরের সময়সীমা নির্বিশেষে সবচেয়ে ভালো কোয়ালিটির ফলাফল পেতে চাইলে এই রাউটিং পছন্দ ব্যবহার করুন। এই রাউটিং প্রেফারেন্সের ক্ষেত্রে উত্তর দিতে সবচেয়ে বেশি দেরি হয় (সবচেয়ে বেশি লেটেন্সি)।
আপনি TRAFFIC_AWARE_OPTIMAL রাউটিং সংক্রান্ত পছন্দ সেট করলে, পরিষেবাটি
বর্তমান ট্রাফিক পরিস্থিতি বিবেচনা করে রুট গণনা করে, কিন্তু পারফর্ম্যান্স
অপ্টিমাইজেশন প্রয়োগ করে না। এই মোডে, অপ্টিমাল রুট খুঁজে পেতে, সার্ভার রোড নেটওয়ার্কের
আরও বিস্তারিত সার্চ করে।
TRAFFIC_AWARE_OPTIMAL রাউটিং সংক্রান্ত পছন্দ হল
maps.google.com এবং Google Maps মোবাইল অ্যাপের ব্যবহার করা মোডের সমতুল্য।
computeRouteMatrix-এর সাথে এই বিকল্প ব্যবহার করলে, কোনও
অনুরোধে এলিমেন্টের সংখ্যা (অরিজিনের সংখ্যা × গন্তব্যের সংখ্যা) ২৫-এর বেশি হতে পারবে না।
আপনি এইসব উত্তর দেখতে পাবেন:
duration: রিয়েল-টাইম ট্রাফিক সংক্রান্ত তথ্য বিবেচনা করে রুটের জন্য ETA।staticDuration: শুধুমাত্র ট্রাফিকের ঐতিহাসিক তথ্য বিবেচনা করে রুটের জন্য পৌঁছানোর আনুমানিক সময়।
ছাড়ার সময় সেট করুন (ঐচ্ছিক)
এই প্রপার্টি শুধুমাত্র ট্রাফিক সংক্রান্ত অনুরোধের জন্য ব্যবহার করুন যেখানে ছাড়ার সময়
ভবিষ্যতে হতে হবে। আপনি departureTime প্রপার্টি সেট না করলে, এটি ডিফল্ট হিসেবে
সেই সময় সেট হয়ে যায় যখন আপনি অনুরোধ করেন।
রুট বেছে নেওয়ার সময় পরিষেবাটি যেভাবে ট্রাফিক সম্পর্কে পূর্বাভাস দেয়,
আপনি যদি তা অ্যাডজাস্ট করতে চান, তাহলে TRAFFIC_AWARE এবং
TRAFFIC_AWARE_OPTIMAL বিকল্পের সাথে departureTime প্রপার্টি ব্যবহার করুন।
TRAFFIC_UNAWARE: সাজেস্ট করা হয় না কারণ রুট ও সময়সীমার পছন্দ রোড নেটওয়ার্ক ও সময়ের উপর নির্ভর করে না এমন ট্রাফিক পরিস্থিতির গড় সময়ের উপর নির্ভর করে।TRAFFIC_AWAREএবংTRAFFIC_AWARE_OPTIMAL: অদূর ভবিষ্যতে রওনা হওয়ার জন্য সাজেস্ট করা হয় কারণ এই পছন্দগুলি লাইভ ট্রাফিক পরিস্থিতি বিবেচনা করে। লাইভ ট্রাফিক যত বেশি গুরুত্বপূর্ণ ও প্রাসঙ্গিক হয়ে ওঠে,departureTimeতত বেশি কাছাকাছি চলে আসে। আপনি যত বেশি আগে থেকে রওনা হওয়ার সময় সেট করবেন, রুট বেছে নেওয়ার সময় তত বেশি ঐতিহাসিক ট্রাফিক পরিস্থিতি বিবেচনা করা হবে।
রুট টোকেন পান
রুট টোকেন হল কোনও রুটের ওয়েব-নিরাপদ, base64-এনকোড করা উপস্থাপনা। Navigation SDK-এর সাথে রুট শেয়ার করতে রুট টোকেন ব্যবহার করুন। SDK এই টোকেন ব্যবহার করে রুট আবার তৈরি করে এবং রুট পরিবর্তন করার সময়ও আসল নেভিগেশন ইনটেন্ট বজায় রাখে।
রুট টোকেন পেতে এইসব ধাপ অনুসরণ করুন:
- travelMode
DRIVING-এ সেট করুন। routingPreference-কেTRAFFIC_AWAREবাTRAFFIC_AWARE_OPTIMAL-এ সেট করুন।routeTokenফিল্ডের জন্য অনুরোধ করুন।
নিম্নলিখিত অনুরোধের উদাহরণ থেকে কীভাবে রুট টোকেনের জন্য অনুরোধ করতে হয় তা জানতে পারবেন:
// Define a traffic aware routes request with a route token. const requestWithRouteToken = { origin: '200 King St San Francisco, CA 94107', destination: 'Pier 41, San Francisco, CA 94133', travelMode: 'DRIVING', routingPreference: 'TRAFFIC_AWARE', fields: ['path', 'speedPaths', 'routeLabels', 'routeToken'], };