বড় যানবাহনের জন্য টার্ন-বাই-টার্ন নেভিগেশন প্রদান করুন

এই নির্দেশিকাটি কাদের জন্য: আপনি যদি একজন মোবাইল ডেভেলপার হন এবং ট্রাক বা অন্যান্য বড় যানবাহনের চালকদের জন্য ইন-ক্যাব নেভিগেশন অভিজ্ঞতা তৈরির দায়িত্বে থাকেন, তাহলে এই নির্দেশিকাটি পড়ুন।

এই নির্দেশিকায় যা আলোচনা করা হয়েছে: Routes API দ্বারা তৈরি একটি ট্রাক-নির্দিষ্ট রুট কীভাবে Navigation SDK-এর সাহায্যে একটি টার্ন-বাই-টার্ন নেভিগেশন সেশন পরিচালনা করতে ব্যবহার করা যায়, তা এই নির্দেশিকায় ব্যাখ্যা করা হয়েছে।

আপনি যা শিখবেন

আপনি নিম্নলিখিত বিষয়গুলো করতে শিখবেন:

  • ব্যাকএন্ড রুট প্ল্যানিংকে ইন-অ্যাপ নেভিগেশন অভিজ্ঞতার সাথে সংযুক্ত করতে একটি routeToken ব্যবহার করুন
  • পূর্ব-পরিকল্পিত ট্রাক রুট ব্যবহার করার জন্য নেভিগেশন SDK কনফিগার করুন
  • UI-তে ট্রাক-নির্দিষ্ট বিধিনিষেধগুলো ড্রাইভারের কাছে কীভাবে প্রদর্শিত হয়, তা বুঝুন

পূর্বশর্ত

শুরু করার আগে, আপনাকে নিম্নলিখিত শর্তগুলো পূরণ করতে হবে।

প্রজেক্ট সেটআপ

বৃহৎ যানবাহন রাউটিং পরিষেবা সীমিত সংখ্যক গ্রাহকদের জন্য উপলব্ধ, অ্যাক্সেসের অনুরোধ করতে আমাদের সাথে যোগাযোগ করুন । অ্যাক্সেস পেয়ে গেলে, নিশ্চিত করুন যে আপনার Google Cloud প্রজেক্টটি বৃহৎ যানবাহন রাউটিং-এর জন্য প্রোভিশন করা আছে। আপনি যদি Routes API এবং Navigation SDK-এর জন্য আলাদা প্রজেক্ট ব্যবহার করেন, তবে আপনাকে অবশ্যই উভয় প্রজেক্টই প্রোভিশন করতে হবে।

একটি রুট টোকেন তৈরি করুন

আপনাকে প্রথমে 'ট্রাক রুট ও আনুমানিক সময় তৈরি করুন' গাইডের নির্দেশনা অনুসরণ করে একটি রুট তৈরি করতে হবে। এই গাইডের ধাপগুলো সম্পন্ন করার জন্য সেই প্রক্রিয়ার আউটপুট, অর্থাৎ একটি routeToken , প্রয়োজন হবে।

ন্যূনতম প্রয়োজনীয়তা

আপনার অ্যাপে অবশ্যই ন্যূনতম প্রয়োজনীয় নেভিগেশন এসডিকে সংস্করণ ব্যবহার করতে হবে:

  • অ্যান্ড্রয়েড: ৫.২.০ বা তার পরবর্তী সংস্করণ
  • iOS: 5.4.0 বা তার পরবর্তী সংস্করণ

এছাড়াও, নেভিগেশন এসডিকে ব্যবহারের জন্য সকল শর্ত প্রযোজ্য:

সীমাবদ্ধতা

শুরু করার আগে, আপনাকে নিম্নলিখিত সীমাবদ্ধতা ও শর্তাবলী সম্পর্কে অবশ্যই অবগত থাকতে হবে।

  • ভৌগোলিক প্রাপ্যতা : বড় যানবাহন চলাচলের পথ শুধুমাত্র মার্কিন যুক্তরাষ্ট্রের সংলগ্ন ৪৮টি রাজ্যে উপলব্ধ।
  • চালকের জন্য পরামর্শ ও নিরাপত্তা । চালকদের অবশ্যই এই এপিআই (API) দ্বারা প্রদত্ত রুটকে নিরাপদ বা আইনসম্মত বলে সম্পূর্ণরূপে নির্ভর করা উচিত নয়। রুটগুলো গাড়ির জন্য উপযুক্ত হবে এমন কোনো নিশ্চয়তা নেই, এবং সেগুলো অনুসরণ করলে চালকরা নিচু সেতু বা বড় যানবাহন চলাচলে নিষিদ্ধ রাস্তার মতো বিপদের সম্মুখীন হতে পারেন।
  • সর্বোত্তম প্রচেষ্টা রুট । কিছু ক্ষেত্রে, এপিআই এমন কোনো রুট খুঁজে পায় না যা ভ্রমণ নিষেধাজ্ঞা সম্পূর্ণরূপে মেনে চলে। এর পরিবর্তে, এটি একটি "সর্বোত্তম প্রচেষ্টা" রুট ফেরত দেয় যা সীমাবদ্ধ এলাকার মধ্য দিয়ে যেতে পারে। রুটস এপিআই প্রতিক্রিয়াটি routeRestrictionsPartiallyIgnored ফিল্ডে এই রুটগুলিকে স্পষ্টভাবে চিহ্নিত করে। এই ক্ষেত্রে, অন্যান্য উৎস ডেটা ব্যবহার করে সাবধানে আপনার রুট পরিকল্পনা করুন। পরিকল্পনা বা নেভিগেশনের জন্য একটি চিহ্নিত রুটকে তথ্যের একমাত্র উৎস হিসেবে ব্যবহার করবেন না।
  • অসমর্থিত বৈশিষ্ট্য : বৃহৎ যানবাহন রাউটিং নিম্নলিখিতগুলি সমর্থন করে না:
    • ট্রাক টোলের দাম
    • গতিসীমা
    • তেজস্ক্রিয় বিপজ্জনক পদার্থের জন্য রাউটিং
  • ব্যবহারের সীমা: সকল অনুরোধ স্ট্যান্ডার্ড কোয়েরি-পার-সেকেন্ড (QPS) সীমার অধীন।

ট্রাক-নির্দিষ্ট UI প্রদর্শন করুন

নেভিগেশন এসডিকে স্বয়ংক্রিয়ভাবে ম্যাপে রুট কলআউট নামক ভিজ্যুয়াল সতর্কতা প্রদর্শন করে, যা চালকদের আসন্ন ট্রাক চলাচলের বিধিনিষেধ সম্পর্কে সতর্ক করে। কলআউটগুলো সেইসব বিধিনিষেধের জন্য দেখানো হয় যা পরিকল্পিত রুটের অংশ, কিন্তু কাছাকাছি অন্য রাস্তায় নেই।

এসডিকে-তে নিম্নলিখিত বিধিনিষেধগুলির জন্য কলআউট অন্তর্ভুক্ত রয়েছে:

সীমাবদ্ধতা কলআউট আইকন এবং টেক্সট প্রদর্শনের শর্তাবলী
উচ্চতা A yellow height restriction icon
হলুদ = সতর্কীকরণ, আপনার যানবাহনটি অনুমোদিত সর্বোচ্চ উচ্চতার কাছাকাছি রয়েছে।
A red height restriction icon
লাল = আপনার যানবাহনটি অনুমোদিত সর্বোচ্চ উচ্চতার উপরে রয়েছে
গাড়ির উচ্চতা নির্ধারিত সীমার কাছাকাছি চলে এলে একটি হলুদ সংকেত প্রদর্শিত হয়।
A map with a height restriction warning
যদি পথটি নিয়মবহির্ভূত হয় এবং উচ্চতার সীমাবদ্ধতা লঙ্ঘন করে, তাহলে একটি লাল চিহ্ন প্রদর্শিত হয়।
A map with a height restriction violation
ওজন A weight restriction icon গাড়ির ওজন রাস্তার নির্ধারিত সীমা অতিক্রম করলে একটি লাল সংকেত প্রদর্শিত হয়।
A map with a weight restriction icon
ট্রাক নিষিদ্ধ A trucks prohibited icon যেসব সড়ক অংশে ট্রাক চলাচলে নিষেধাজ্ঞা রয়েছে, সেসব অংশে একটি লাল সংকেত দেখা যায়।
A map with a trucks prohibited icon
বিপজ্জনক পণ্য A hazardous goods icon রাস্তার কোনো অংশে যানবাহনের বিপজ্জনক পদার্থ বহন নিষিদ্ধ হলে একটি লাল সংকেত প্রদর্শিত হয়।
A map with a hazardous goods icon

রুট টোকেন ওয়ার্কফ্লো

একটি routeToken হলো রুটস এপিআই (Routes API) দ্বারা তৈরি একটি রুটের এনক্রিপ্টেড ও সুরক্ষিত স্ন্যাপশট। এতে রুটের সমস্ত বিবরণ থাকে, যার মধ্যে এটি তৈরি করতে ব্যবহৃত গাড়ির তথ্যও অন্তর্ভুক্ত। একটি টোকেন ব্যবহার নিশ্চিত করে যে নেভিগেশন সেশনটি আপনার ব্যাকএন্ডে পরিকল্পিত রুটের সাথে মিলে যায়।

মনে রাখবেন যে, ড্রাইভার একবার নেভিগেট করা শুরু করলে, ট্র্যাফিক এবং রাস্তার অবস্থার উপর নির্ভর করে নেভিগেশন SDK দ্বারা প্রদর্শিত রুটটি পরিবর্তিত হতে পারে। কিছু ক্ষেত্রে এটি রুট টোকেন দ্বারা নির্দিষ্ট করা রুট থেকে বিচ্যুত হতে পারে।

এইসব ক্ষেত্রে, এবং সেইসাথে চালক যখন পরিকল্পিত পথ থেকে বিচ্যুত হন, তখনও রুট টোকেনের ব্যবহার নিশ্চিত করে যে নতুনভাবে গণনা করা রুটগুলো মূল রুটস এপিআই অনুরোধে কনফিগার করা গাড়ির বৈশিষ্ট্যগুলোকে সম্মান করে।

কার্যপ্রবাহটি নিম্নলিখিত ধাপগুলো অনুসরণ করে:

  1. আপনার ব্যাকএন্ড Routes API থেকে একটি ট্রাক রুটের জন্য অনুরোধ করে।
  2. Routes API একটি routeToken রিটার্ন করে
  3. আপনার ব্যাকএন্ড এই টোকেনটি আপনার মোবাইল অ্যাপ্লিকেশনে পাঠায়।
  4. যাত্রা শুরু করার জন্য মোবাইল অ্যাপটি routeToken নেভিগেশন এসডিকে- তে পাঠিয়ে দেয়।
  5. নেভিগেশন এসডিকে টার্ন-বাই-টার্ন অভিজ্ঞতার সমস্ত দিক পরিচালনা করে , যার মধ্যে রয়েছে চালক পথ থেকে বিচ্যুত হলে গাড়ির মূল সীমাবদ্ধতা বজায় রেখে পথ পরিবর্তন করে দেওয়া।

বাস্তবায়ন: ট্রাক-নির্দিষ্ট একটি ট্রিপ শুরু করুন

আপনার ট্রাক রুটের সাথে একটি নেভিগেশন সেশন চালু করতে, আপনাকে রুট টোকেনটি নেভিগেটরের কাছে পাঠাতে হবে।

ধাপ ১: রুট টোকেনটি সংগ্রহ করুন

আপনার অ্যাপ্লিকেশনটি আপনার ব্যাকএন্ড সার্ভার থেকে routeToken স্ট্রিংটি গ্রহণ করে।

নিম্নলিখিত কোডটি একটি টোকেনের উদাহরণ:

CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g

ধাপ ২: টোকেনটি নেভিগেটরের কাছে পাঠান।

ট্রিপের গন্তব্য নির্ধারণ করার সময় নেভিগেটরকে routeToken প্রদান করুন। এরপর নেভিগেশন এসডিকে ট্রিপটির সমস্ত রুট গণনার জন্য এই টোকেনটি ব্যবহার করে।

উল্লেখ্য যে, নেভিগেশন SDK-এর একটি TravelMode কনফিগারেশন রয়েছে, যা অবশ্যই TravelMode.DRIVING এ সেট করতে হবে। এটি Routes API-এর travelMode কনফিগারেশন থেকে আলাদা, যা অবশ্যই TRUCK এ সেট করতে হবে। Routes API-এর travelMode কনফিগারেশনটি routeToken এ এনকোড করা থাকে এবং এটি নেভিগেশন SDK-কে ট্রাক-নির্দিষ্ট এক্সপেরিয়েন্স ও রুট প্রদর্শন করার জন্য সংকেত দেয়।

অ্যান্ড্রয়েড

টোকেন সেট করার জন্য CustomRoutesOptions.builder() ব্যবহার করুন এবং তারপর সেটি navigator.setDestinations() -এ পাস করুন।

// Obtain the routeToken string from your backend
val routeToken = "route token returned by Routes API"

val customRoutesOptions = CustomRoutesOptions.builder()
    .setRouteToken(routeToken)
    .setTravelMode(TravelMode.DRIVING)
    .build()

// Specify the same destination used to create the route token
ArrayList <Waypoint> destinations = Lists.newArrayList();
val destination = Waypoint.builder()
    .setLatLng(10.0, 20.0)
    .setTitle("title")
    .setVehicleStopover(true)
    .build()
destinations.add(destination);

navigator.setDestinations(destinations, customRoutesOptions)

আইওএস

mapView.navigator এর setDestinations মেথড ব্যবহার করে নেভিগেশন SDK-তে রুট টোকেনটি পাঠান এবং রুট টোকেন তৈরি করার সময় ব্যবহৃত একই ডেস্টিনেশন ওয়েপয়েন্টগুলো উল্লেখ করুন:

// Obtain the routeToken string from your backend
let routeToken = "route token returned by Routes API"

mapView.navigator?.setDestinations([destination], routeToken: routeToken, callback: {...})

পরবর্তী পদক্ষেপ