
এই ডকুমেন্টটি রোডস ম্যানেজমেন্ট ইনসাইটস (RMI) পণ্যের জন্য রোড সিলেকশন API ব্যবহার করে SelectedRoutes সংজ্ঞায়িত করার জন্য সর্বোত্তম অনুশীলন প্রদান করে। আপনার SelectedRoutes সঠিকভাবে সংজ্ঞায়িত করা হল সবচেয়ে গুরুত্বপূর্ণ পদক্ষেপ যা আপনি যে রাস্তার অংশগুলি পর্যবেক্ষণ করতে চান তার জন্য সঠিক এবং নির্ভরযোগ্য ট্র্যাফিক ডেটা পান তা নিশ্চিত করার জন্য। সম্পূর্ণ প্রযুক্তিগত সারসংক্ষেপের জন্য, দয়া করে অফিসিয়াল রোড সিলেকশন API ডকুমেন্টেশনটি দেখুন।
SelectedRoute তৈরির মূল নীতিমালা
পর্যবেক্ষণের জন্য একটি SelectedRoute সংজ্ঞায়িত করার সময়, SelectedRoute এর নির্ভুলতা এবং ডেটার বৈধতা নিশ্চিত করার জন্য আপনার নিম্নলিখিত নীতিগুলি মেনে চলা উচিত।
১. রাস্তার পাশের বিষয়ে সুনির্দিষ্ট হোন
একটি SelectedRoute ভ্রমণের একটি একক দিক নির্দেশ করবে। বিভক্ত হাইওয়ে বা মধ্যমা সহ রাস্তার জন্য, প্রতিটি দিকের জন্য আলাদা SelectedRoute অবজেক্ট তৈরি করা উচিত (যেমন, উত্তরমুখীর জন্য একটি, দক্ষিণমুখীর জন্য একটি)। নিশ্চিত করুন যে আপনার উৎপত্তিস্থল, গন্তব্যস্থল এবং যেকোনো মধ্যবর্তী ওয়েপয়েন্ট রাস্তার সঠিক পাশে স্থাপন করা হয়েছে যে দিকটি আপনি পর্যবেক্ষণ করতে চান। একটি বিভক্ত হাইওয়ের ভুল দিকে একটি উৎপত্তিস্থল বা গন্তব্য স্থাপন করলে অনিচ্ছাকৃত SelectedRoutes বা ডেটা ত্রুটি হতে পারে।
2. বহু-স্তরের রাস্তা এবং ওভারপাস পরিচালনা করুন
একাধিক স্তর বিশিষ্ট জটিল সড়কপথে (যেমন, স্তূপীকৃত মহাসড়ক, ওভারপাস, জটিল ইন্টারচেঞ্জ), একটি একক অক্ষাংশ এবং দ্রাঘিমাংশ জোড়া অস্পষ্ট হতে পারে এবং এর ফলে রুটটি ভুল স্তরে "স্ন্যাপ" হতে পারে। এটি প্রতিরোধ করার জন্য, সঠিক রাস্তার অংশ এবং স্তরে রুটটি পরিচালনা করার জন্য আপনার মধ্যবর্তী ওয়েপয়েন্ট ব্যবহার করা উচিত । এক বা একাধিক ওয়েপয়েন্ট যোগ করলে নিশ্চিত হয় যে রুটটি আপনার সঠিক উদ্দেশ্য অনুসরণ করে।
৩. বৈধ শুরু এবং শেষ বিন্দু নির্ধারণ করুন
একটি SelectedRoute একটি টানেলের ভেতরে শুরু বা শেষ হতে পারে না। আপনার SelectedRoute-এর উৎপত্তিস্থল এবং গন্তব্যস্থল খোলা আকাশের নিচে থাকা উচিত। SelectedRoutes যে টানেলগুলি অতিক্রম করে সেগুলি সমর্থিত, কিন্তু মনিটরিং সেগমেন্টটি নিজেই একটি টানেলের ভেতরে শুরু বা শেষ হতে পারে না।

৪. উপযুক্ত রুটের দৈর্ঘ্য নির্ধারণ করুন
একটি SelectedRoute নমনীয় এবং বিভিন্ন স্কেলে সংজ্ঞায়িত করা যেতে পারে:
- সংক্ষিপ্ত রুট: একটি নির্বাচিত রুট একটি একক শহরের ব্লকের মতো ছোট হতে পারে, যা শহরাঞ্চলে বিস্তৃত বিশ্লেষণের জন্য কার্যকর।
- অভিন্ন রুট: আপনি ধারাবাহিক প্রতিবেদনের জন্য সমান দূরত্বের (যেমন, প্রতি ০.৫ মাইল) নির্বাচিত রুটগুলি সংজ্ঞায়িত করতে পারেন।
- দীর্ঘ রুট: একটি নির্বাচিত রুট দীর্ঘ, একটানা রাস্তা কভার করতে পারে। এটি পুরো হাইওয়ে করিডোর বা গুরুত্বপূর্ণ সংযোগস্থলের মধ্যে প্রধান প্রধান রাস্তাগুলি পর্যবেক্ষণের জন্য আদর্শ।
আপনার পর্যবেক্ষণ এবং বিশ্লেষণের চাহিদার সাথে সবচেয়ে ভালোভাবে মেলে এমন SelectedRoute দৈর্ঘ্যটি বেছে নিন।
৫. উল্লম্ব বিভাজন (টানেল, ফ্লাইওভার, সেতু ইত্যাদি) ব্যবহার করে রাস্তার অংশগুলি চিহ্নিত করুন।
অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্ক ব্যবহার করে রাস্তার অংশগুলি সংজ্ঞায়িত করার সময়, এমন পরিস্থিতিগুলির হিসাব করা অত্যন্ত গুরুত্বপূর্ণ যেখানে একাধিক রাস্তার অংশ একই দ্বি-মাত্রিক ভৌগোলিক স্থান দখল করে কিন্তু উল্লম্বভাবে পৃথক করা হয়। এটি প্রায়শই টানেল, ফ্লাইওভার, ওভারপাস এবং সেতুর মতো কাঠামোর ক্ষেত্রে ঘটে। উচ্চতা বিবেচনা না করে কেবল অক্ষাংশ এবং দ্রাঘিমাংশের উপর নির্ভর করলে SelectedRoute নির্বাচন এবং নেভিগেশনে ভুল হতে পারে। উদাহরণস্বরূপ, একটি টানেলের মধ্য দিয়ে যাওয়া রাস্তার উপরের পৃষ্ঠের রাস্তার অংশের মতোই ওভারহেড অক্ষাংশ এবং দ্রাঘিমাংশ থাকবে। একইভাবে, একটি ফ্লাইওভার বা সেতু তার নীচের রাস্তার সাথে অনুভূমিক স্থানাঙ্ক ভাগ করবে। এই উল্লম্বভাবে স্তূপীকৃত অংশগুলিকে আলাদা করতে ব্যর্থ হওয়ার ফলে একটি রাউটিং সিস্টেম ভুলভাবে ট্র্যাফিককে নিম্ন-স্তরের রাস্তায় নির্দেশ করতে পারে যখন একটি উচ্চ-স্তরের রাস্তা তৈরি করা হয়, অথবা তদ্বিপরীত।
এই উদাহরণে, বোস্টনে 42.362347, -71.055935 নম্বরে Big Dig নামে একটি বিশাল সুড়ঙ্গ রয়েছে।

যখন আমরা কোনও রাস্তায় একটি ওয়েপয়েন্ট স্থাপন করি, তখন এর সঠিক ভৌগোলিক স্থানাঙ্কে সামান্য ভুলও একটি সম্পূর্ণ ভিন্ন রুট গণনার দিকে পরিচালিত করতে পারে। SelectedRoute নির্বাচন অ্যালগরিদমে ওয়েপয়েন্ট স্থাপনের এই সংবেদনশীলতা একটি গুরুত্বপূর্ণ বিষয়।
উদাহরণস্বরূপ, এমন একটি দৃশ্যকল্প বিবেচনা করুন যেখানে একটি ওয়েপয়েন্ট প্রাথমিকভাবে একটি টানেলের ভিতরে স্থাপন করা হয়। যদি এই ওয়েপয়েন্টের অবস্থানটি তখন সংলগ্ন অ্যাক্সেস রোডের সাথে সামান্য সামঞ্জস্য করা হয়, প্রায় একই অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্ক থাকা সত্ত্বেও, রাউটিং ইঞ্জিনটি সম্পূর্ণ ভিন্ন রুট তৈরি করতে পারে। এই ঘটনাটি সুনির্দিষ্ট ওয়েপয়েন্ট ইনপুটের গুরুত্ব এবং রুট অপ্টিমাইজেশনের সাথে জড়িত জটিলতাগুলিকে তুলে ধরে, বিশেষ করে জটিল সড়ক নেটওয়ার্ক এবং ভৌগোলিক বৈশিষ্ট্যযুক্ত এলাকায়।


৬. সব রাস্তা ট্র্যাক করা যায় না
আপনার SelectedRoute সবসময় ট্র্যাকযোগ্য নাও হতে পারে
- নিবন্ধিত "এখতিয়ার" এর বাইরে
- নিম্ন "রোড ইউটিলিটি"
- এর ফলে সময়ের সাথে সাথে ট্র্যাকযোগ্যতা পরিবর্তিত হতে পারে।
বৈধতা অ্যাসিঙ্ক্রোনাস চালায় ⇒ নিবন্ধিত SelectedRoutes সবগুলি এটি পাস করেছে কিনা তা পরীক্ষা করুন
নির্বাচিত রুট সংজ্ঞার জন্য সেরা অনুশীলন
আপনার SelectedRoute সংজ্ঞা এবং এর ফলে প্রাপ্ত ডেটার মান উন্নত করতে এই সেরা অনুশীলনগুলি অনুসরণ করুন।
মধ্যবর্তী ওয়েপয়েন্ট (মধ্যবিন্দু) ব্যবহার করুন
এমনকি সংক্ষিপ্ত, আপাতদৃষ্টিতে সহজ SelectedRoutes-এর ক্ষেত্রেও, কমপক্ষে একটি মধ্যবর্তী ওয়েপয়েন্ট অন্তর্ভুক্ত করার জন্য অত্যন্ত সুপারিশ করা হয়।
- কেন?
- গাইড রাউটিং: নিশ্চিত করে যে আপনার নির্বাচিত রুট আপনার পছন্দের নির্দিষ্ট রুট অনুসরণ করে, বিশেষ করে যদি উৎপত্তিস্থল এবং গন্তব্যস্থলের মধ্যে বিকল্প রাস্তা থাকে।
- লুপ সক্রিয় করে: লুপ বা "আউট-এন্ড-ব্যাক" SelectedRoutes সঠিকভাবে উপস্থাপন করতে হবে যেখানে উৎপত্তি এবং গন্তব্য একই।
- ডিটোর ডিটেকশন উন্নত করে: আপনি যত বেশি ওয়েপয়েন্ট প্রদান করবেন, আপনার নির্ধারিত SelectedRoute থেকে ট্র্যাফিক বিচ্যুত হওয়া ডেটা পয়েন্টগুলি সনাক্ত করা এবং চিহ্নিত করা তত সহজ হবে।
- কিভাবে?
- আপনি জিওস্পেশিয়াল ফাংশন ব্যবহার করে একটি পরিচিত SelectedRoute বরাবর প্রোগ্রাম্যাটিকভাবে একটি মধ্যবিন্দু খুঁজে পেতে পারেন।
- উদাহরণ (BigQuery): ST_LINEINTERPOLATEPOINT ফাংশনটি ব্যবহার করুন।
- উদাহরণ (জাভাস্ক্রিপ্ট): Turf.js লাইব্রেরি থেকে along ফাংশনটি ব্যবহার করুন।
বহিরাগত সিস্টেম থেকে রুট মিলান
যদি আপনি কোনও বহিরাগত GIS অথবা অন্য কোনও রোড নেটওয়ার্কের উপর নির্মিত সিস্টেম থেকে রুট ডেটা আমদানি করেন, তাহলে স্থানাঙ্কগুলি Google এর রোড নেটওয়ার্কের সাথে পুরোপুরি সামঞ্জস্যপূর্ণ নাও হতে পারে। এর ফলে "অনিচ্ছাকৃত রুট" তৈরি হতে পারে।
- কিভাবে ঠিক করবেন:
- রাস্তার পাশের দিকটি পরীক্ষা করুন: প্রথমে, নিশ্চিত করুন যে আপনার উৎপত্তিস্থল এবং শুরুর স্থানটি রাস্তার সঠিক দিকে।
- স্ন্যাপ-টু-রোড: আপনার বিদ্যমান রুট ডেটা গুগলের রোড নেটওয়ার্কে স্ন্যাপ করতে রোডস API v2 ম্যাচপাথ পদ্ধতি ব্যবহার করুন।
- ম্যানুয়ালি অ্যাডজাস্ট এবং রি-ড্র: গুগলের রাস্তার সাথে মিলে যাওয়ার জন্য একটি টুলে আপনার ওয়েপয়েন্ট ম্যানুয়ালি অ্যাডজাস্ট করুন। তারপর, Routes API computeRoute পদ্ধতি ব্যবহার করে (ট্রাফিক "অজানা" তে সেট করে) একটি পরিষ্কার পলিলাইন তৈরি করুন যা গুগলের নেটওয়ার্ক অনুসরণ করে।
- ট্রেস: শেষ অবলম্বন হিসেবে, একটি GIS টুলে Google এর রোড নেটওয়ার্কে আপনার ডেটা ওভারলে করুন এবং নতুন ওয়েপয়েন্ট তৈরি করতে ম্যানুয়ালি রুটটি ট্রেস করুন।
ডেটা পরিষ্কার এবং যাচাইকরণ
BigQuery-তে আপনি যে ডেটা পাবেন তা বাস্তব-বিশ্বের পরিস্থিতি প্রতিফলিত করে। আপনার মূল SelectedRoute-এর প্রতিনিধিত্ব করে না এমন ডেটা ফিল্টার করার জন্য আপনার পরিষ্কারকরণের পদক্ষেপগুলি প্রয়োগ করা উচিত।
ঘুরপথ পরিচালনা করুন
RMI-কে ক্ষমতা প্রদানকারী Routes API সর্বদা একটি বৈধ রুট ফেরত দেওয়ার চেষ্টা করবে। যদি আপনার নির্ধারিত SelectedRoute ব্লক করা থাকে বা তীব্রভাবে যানজট থাকে, তাহলে API এমন একটি রুট ফেরত দিতে পারে যা একটি বাঁক নেয় এবং আপনার নির্ধারিত মধ্যবর্তী ওয়েপয়েন্ট থেকে বিচ্যুত হয়। উদাহরণস্বরূপ, যদি আপনার SelectedRoute A -> B -> C থেকে একটি রুট নির্দিষ্ট করে, তাহলে একটি বাঁক ফেরত দেওয়ার ফলে A -> C থেকে সরাসরি ভ্রমণকারী একটি বাঁক ফেরত আসতে পারে।
উদাহরণস্বরূপ, যদি আমরা এই রুটটি প্লট করি: https://www.google.com/maps/dir/OR-213,+Oregon+City,+OR+97045/Caufield,+Oregon+City,+OR+97045/OR-213,+Oregon+City,+OR+97045/OR-213,+Oregon+City,+OR+97045/643+OR-213,+Oregon+City,+OR+97045/OR-213,+Oregon+City,+OR+97045/OR-213,+Oregon+City,+OR+97045/Oregon+City,+OR+97045/Washington+Dr ,+ওরেগন+শহর,+OR+97045/@45.3754391,-122.5822044,15.2z/data=!4m50!4m49!1m5!1m1!1s0x549570b9f466b4a1:0x6390dd57f70701fd!2m2!1d-122.5787!2d45.3231933!1m5!1m1!1s0x549570ca19ded1b3:0xd28eaf8da19c4509!2m2!1d-122.5756369!2d45.3303343!1m5!1m1!1s0x549576c6b49921 ৩৭:০xb6ed1e1848a8e2a5!২মি২!১ডি-১২২.৫৮৪১২৮৯!২ডি৪৫.৩৬৪০৯১৯!১মি৫!১মি১!১এস০এক্স৫৪৯৫৭৬সি০সি৪৮ইই৬এফ১:০x৮৬৪৯৭ই০৩৬সি৫ডিডি৪৪৪!২মি২!১ডি-১২২.৫৮৫০০৮৬!২ডি৪৫. 3662193!1m5!1m1!1s0x549576bfbca6fa93:0xf6b573219354d3f!2m2!1d-1 22.5851045!2d45.3696112!1m5!1m1!1s0x549576be3782e5db:0xd0ea93d91 e8a0792!2m2!1d-122.5857424!2d45.371047!1m5!1m1!1s0x5495769635216053:0x150f4a4f811b98d6!2m2!1d-122.5870571!2d45.3752342!1m5!1m1!1s0x54957697b928b269:0x2b114f280e6ab0f0!2m2!1d-122.5875209!2d45.3760557!3e0?entry=ttu&g_ep=EgoyMDI1MTAxMy4wIKXMDSoASAFQAw%3D%3D আমরা দেখতে পাচ্ছি যে রাস্তার কিছু অবস্থার কারণে একটি বিশাল পরিবর্তন ঘটছে, কিন্তু যদি এটি সাবধানে সংশোধন না করা হয়, তাহলে ভুল তথ্য সংগ্রহের কারণ হতে পারে।

RMI-এর জন্য, এই ডিটোর করা রেকর্ডগুলি কম কার্যকর কারণ এগুলি আপনার পর্যবেক্ষণ করা নির্দিষ্ট SelectedRoute-এর প্রতিনিধিত্ব করে না।
- পদক্ষেপ: এই সারিগুলি কেবল মুছে ফেলবেন না। কখন এবং কেন বিচ্যুতি ঘটছে তা বোঝার জন্য বিশ্লেষণের জন্য আপনার এগুলিকে চিহ্নিত করা উচিত।
- কিভাবে ডিট্যুর চিহ্নিত করবেন: প্রোগ্রাম্যাটিকভাবে ডিট্যুর সনাক্ত করার জন্য দুটি প্রাথমিক পদ্ধতি রয়েছে:
- ওয়েপয়েন্টের মিল নেই: ফিরে আসা রুটের জ্যামিতিতে আপনার নির্দিষ্ট সমস্ত মধ্যবর্তী ওয়েপয়েন্ট অন্তর্ভুক্ত ছিল কিনা তা পরীক্ষা করুন।
- দূরত্বের পার্থক্য: ফিরে আসা রুটের
distanceআপনারSelectedRouteএর প্রত্যাশিত দূরত্বের থেকে উল্লেখযোগ্যভাবে আলাদা কিনা তা পরীক্ষা করুন। একটি সাধারণ থ্রেশহোল্ড হল 5% পার্থক্য।
- ফ্ল্যাগিং ডিটোরগুলির জন্য BigQuery উদাহরণ: আপনি আপনার
SelectedRoutesটেবিল (যার মধ্যে প্রত্যাশিত দূরত্ব রয়েছে)RouteResponsesটেবিলের সাথে যুক্ত করতে পারেন এবং একটি ফ্ল্যাগ তৈরি করতে একটিCASEস্টেটমেন্ট ব্যবহার করতে পারেন।
"মাল্টিলাইনস্ট্রিং" জ্যামিতি পরিচালনা করা
BigQuery এর GEOGRAPHY ডেটা টাইপের একটি সীমাবদ্ধতা রয়েছে: এটি এমন একটি একক LineString সংরক্ষণ করতে পারে না যা নিজেকে ওভারল্যাপ করে (যেমন, একটি বাঁকা U-টার্ন, একটি রুট যা একটি ডিটোরের কারণে নিজের উপর দ্বিগুণ ফিরে আসে)।
- লক্ষণ: যখন এটি ঘটে, তখন BigQuery জ্যামিতিটিকে
MultiLineStringহিসেবে সংরক্ষণ করে এবং রুটের কিছু অংশ অনুপস্থিত থাকতে পারে। - পদক্ষেপ: আপনার প্রাথমিক বিশ্লেষণ থেকে এই রেকর্ডগুলি ফিল্টার করা উচিত।
- BigQuery ফিল্টার:
WHERE ST_GEOMETRYTYPE(route_geometry) != "ST_MultiLineString"ব্যবহার করুন
- BigQuery ফিল্টার:
- সমাধান:
- যদি ওভারল্যাপটি কোনও ডিট্যুরের কারণে হয়, তাহলে উপরে বর্ণিত পদ্ধতিতে রেকর্ডটি ফিল্টার করা যেতে পারে।
- যদি আপনার পছন্দসই SelectedRoute-এ একটি ওভারল্যাপ থাকে, তাহলে আপনার SelectedRoute-কে দুটি বা ততোধিক পৃথক
SelectedRouteঅবজেক্টে বিভক্ত করে এটি পুনরায় সংজ্ঞায়িত করা উচিত।
টাইমজোন রূপান্তর
RMI BigQuery এক্সপোর্টের সমস্ত টাইমস্ট্যাম্প ডেটা কোঅর্ডিনেটেড ইউনিভার্সাল টাইম (UTC) তে সরবরাহ করা হয়। স্থানীয় টাইমজোনে রিপোর্টিং বা বিশ্লেষণের জন্য, আপনার এই টাইমস্ট্যাম্পগুলি রূপান্তর করা উচিত।
- সময় রূপান্তরের জন্য BigQuery উদাহরণ: একটি UTC টাইমস্ট্যাম্পকে একটি নির্দিষ্ট স্থানীয় টাইমজোনে রূপান্তর করতে
DATETIMEএবংTIMESTAMPফাংশন ব্যবহার করুন, যেমন 'America/Los_Angeles'।
উপসংহার
এই নির্দেশিকায় বর্ণিত সর্বোত্তম অনুশীলনগুলি অনুসরণ করে, আপনি নিশ্চিত করতে পারেন যে আপনার SelectedRoute সংজ্ঞাগুলি সঠিক এবং শক্তিশালী, যা Roads Management Insights পণ্য থেকে নির্ভরযোগ্য এবং কার্যকর ট্র্যাফিক ডেটা তৈরি করে। সঠিকভাবে রুট নির্ধারণ করা, জটিল রাস্তার জ্যামিতি পরিচালনা করা এবং ফলস্বরূপ ডেটা যাচাই করা আপনার রাস্তা ব্যবস্থাপনার প্রয়োজনে RMI-এর পূর্ণ সম্ভাবনাকে কাজে লাগানোর জন্য গুরুত্বপূর্ণ পদক্ষেপ।
লেখক
সার্থক গঙ্গোপাধ্যায়: Google Maps Devrel Naoya Moritani: Google Maps Devrel