নেভিগেশন পয়েন্টে যাওয়ার পথ

অ্যান্ড্রয়েডের জন্য নেভিগেশন এসডিকে ওয়েপয়েন্ট বা নেভিগেশন পয়েন্ট নির্দিষ্ট করার উন্নত উপায় প্রদান করে, যা আরও নির্ভুল রুটিং এবং একটি উন্নততর পৌঁছানোর অভিজ্ঞতা দেয়, বিশেষ করে একাধিক প্রবেশপথ বা নির্দিষ্ট নেভিগেশন পয়েন্টযুক্ত গন্তব্যের জন্য। আপনি একটি navigationPointToken ব্যবহার করে সুনির্দিষ্ট অবস্থানে রুট করতে পারেন, যা একটি স্ট্রিং এবং এটি একটি অবস্থান ও অতিরিক্ত রুটের তথ্য এনকোড করে। অতিরিক্ত তথ্যের জন্য আপনি একটি প্লেস আইডি (Place ID)-এর সাথে অক্ষাংশ এবং দ্রাঘিমাংশের স্থানাঙ্কও একত্রিত করতে পারেন।

পটভূমি

v7.4-এর আগে, আপনি অক্ষাংশ ও দ্রাঘিমাংশের স্থানাঙ্ক অথবা একটি প্লেস আইডি ব্যবহার করে একটি Waypoint নির্ধারণ করতে পারতেন। যদিও এটি কখনও কখনও কার্যকর ছিল, শুধুমাত্র অক্ষাংশ ও দ্রাঘিমাংশের উপর ভিত্তি করে রুট নির্ধারণ করলে মাঝে মাঝে গন্তব্যস্থলটি সর্বোত্তম নাও হতে পারে, বিশেষ করে বড় কোনো স্থান, পার্ক বা একাধিক প্রবেশপথযুক্ত ভবনের ক্ষেত্রে। এর ফলে রুটটি নিকটতম রাস্তার অংশে চলে যেতে পারে, যা সবচেয়ে সুবিধাজনক বা সঠিক দিকনির্দেশনা নাও হতে পারে।

উন্নত ওয়েপয়েন্ট বিকল্পগুলো আরও প্রাসঙ্গিক তথ্য প্রদানের সুযোগ দিয়ে এই সমস্যার সমাধান করে।

একটি নেভিগেশন পয়েন্ট টোকেন ব্যবহার করুন

প্রবেশপথ, লোডিং ডক বা নির্ধারিত পিক-আপ এলাকার মতো নির্দিষ্ট নেভিগেশন পয়েন্টে সবচেয়ে নির্ভুল রুটিংয়ের জন্য, আপনি একটি navigationPointToken ) ব্যবহার করতে পারেন। জিওকোডিং এপিআই (Geocoding API)-এর ডেস্টিনেশনস (destinations) মেথড কল করে এই টোকেনটি পাওয়া যায়। এটি কোনো স্থানের সাথে যুক্ত একটি নির্দিষ্ট, রুটযোগ্য নেভিগেশন পয়েন্টকে প্রতিনিধিত্ব করে।

একটি নেভিগেশন পয়েন্ট টোকেন নির্দিষ্ট করতে:

  1. জিওকোডিং এপিআই রেসপন্সের Destinations মেথড থেকে একটি navigationPointToken সংগ্রহ করুন।
  2. বিল্ডারে setNavigationPointToken() মেথড ব্যবহার করে একটি Waypoint তৈরি করুন।

দ্রষ্টব্য: setNavigationPointToken() ব্যবহার করার সময়, আপনি একই সাথে setLatLng() বা setPlaceIdString() ব্যবহার করতে পারবেন না। এই মেথডগুলো setNavigationPointToken() এর সাথে পরস্পর বর্জনীয়।

// Assuming 'navPointToken' is a String obtained from the destinations method of the Geocoding API
// Assuming 'destinationName' is a String title for the waypoint

Waypoint waypointWithToken = Waypoint.builder()
    .setTitle(destinationName)
    .setNavigationPointToken(navPointToken)
    .build();

// Use this waypoint in navigator.setDestinations()

নেভিগেশন পয়েন্ট টোকেন এবং রুট টোকেন ব্যবহার করুন

আপনি জিওকোডিং এপিআই (Geocoding API) এর মাধ্যমে একটি নেভিগেশন পয়েন্ট টোকেন এবং রুটস এপিআই (Routes API) থেকে একটি রুট টোকেন সংগ্রহ করতে পারেন, এবং তারপর নেভিগেশন পয়েন্ট টোকেন ও রুট টোকেন উভয়ই নেভিগেশন এসডিকে (Navigation SDK)-তে পাঠাতে পারেন। রাইডশেয়ার বা ডেলিভারির মতো পরিস্থিতিতে এটি বেশ কার্যকর, যেখানে আপনি ট্রিপের মূল্য গণনা করার জন্য রুটস এপিআই ব্যবহার করেন এবং একটি নেভিগেশন পয়েন্ট টোকেনের নির্ভুলতা চান।

রুট টোকেনটি নেভিগেশন SDK দ্বারা নির্বাচিত রুটটিকে মূল্য নির্ধারণের জন্য ব্যবহৃত রুটের দিকে পক্ষপাতদুষ্ট করে। এর ফলে ভ্রমণের জন্য দীর্ঘতর বা হ্রস্বতর রুট ব্যবহৃত হওয়ার ঝুঁকি কমে যায়, যা ‘প্রাইস শক’ বা মূল্যের আকস্মিক পরিবর্তন ঘটাতে পারে।

ন্যাভিগেশন পয়েন্ট টোকেন ব্যবহার করে অবস্থান নির্দিষ্ট করা এবং রুট টোকেন তৈরি করার বিষয়ে আরও তথ্যের জন্য রাউটস এপিআই (Routes API) ডকুমেন্টেশন দেখুন। রুট টোকেন ব্যবহার করে কীভাবে একটি রুট পরিকল্পনা করতে হয় তা জানতে "একটি রুট পরিকল্পনা করুন" (Plan a route) অংশটি দেখুন।

এই ডায়াগ্রামটি দেখায় যে কীভাবে একটি রাইডশেয়ার বা ডেলিভারি অ্যাপ নেভিগেশন পয়েন্ট টোকেন এবং রুট টোকেন একসাথে ব্যবহার করবে:

রাইডশেয়ার বা ডেলিভারি ব্যবহারের ক্ষেত্রে ডায়াগ্রাম
রাইডশেয়ার বা ডেলিভারি ব্যবহারের একটি উদাহরণের চিত্র।

স্থানের আইডি এবং অক্ষাংশ ও দ্রাঘিমাংশ একত্রিত করুন

v7.4 থেকে শুরু করে, একটি Waypoint তৈরি করার সময় আপনি প্লেস আইডি এবং অক্ষাংশ ও দ্রাঘিমাংশ উভয় স্থানাঙ্কই প্রদান করতে পারবেন। এই পদ্ধতিটি তখন উপযোগী যখন আপনি একটি সুনির্দিষ্ট বিন্দু (অক্ষাংশ/দ্রাঘিমাংশ) উল্লেখ করার পাশাপাশি পুরো স্থানটির প্রেক্ষাপটও (প্লেস আইডি) জানাতে চান। এর ফলে নেভিগেশন এসডিকে গন্তব্য ভবনটিকে হাইলাইট করে অথবা প্লেস আইডির সাথে সম্পর্কিত কাছাকাছি দর্শনীয় স্থানগুলো দেখিয়ে একটি আরও সমৃদ্ধ আগমন অভিজ্ঞতা প্রদান করতে পারে।

// Assuming 'placeId' is the Place ID String
// Assuming 'lat' and 'lng' are the double values for latitude and longitude
// Assuming 'destinationName' is a String title for the waypoint

Waypoint waypointWithPlaceIdAndLatLng = Waypoint.builder()
    .setTitle(destinationName)
    .setPlaceIdString(placeId)
    .setLatLng(lat, lng)
    .build();

// Use this waypoint in navigator.setDestinations()

বিবেচ্য বিষয়সমূহ

যখন আপনি placeId এবং latlng উভয়ই প্রদান করেন:

  • এই রুটটি মূলত নির্দিষ্ট latlng লক্ষ্য করে।
  • আগমন অভিজ্ঞতা উন্নত করার জন্য placeId প্রসঙ্গ হিসেবে ব্যবহৃত হয়।
  • বিকল্প ব্যবস্থা: যদি SDK নির্ধারণ করে যে প্রদত্ত placeId এমন একটি ফিচারের সাথে সম্পর্কিত যা দেওয়া latlng থেকে অনেক দূরে, তাহলে placeId টি উপেক্ষা করা হবে। এই পরিস্থিতিতে, রাউটিং শুধুমাত্র latlng পর্যন্ত অগ্রসর হবে এবং স্থান-নির্দিষ্ট আগমন অভিজ্ঞতার উন্নতিগুলো উপলব্ধ হবে না।

বৈধ ওয়েপয়েন্ট কনফিগারেশনগুলির সারাংশ

পদ্ধতি setLatLng() setPlaceIdString() setNavigationPointToken() রাউটিং আচরণ গন্তব্য তুলে ধরা
শুধুমাত্র অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্ক সেট অনুপস্থিত অনুপস্থিত নির্ধারিত স্থানাঙ্কের নিকটতম সড়ক খণ্ডে যাওয়ার পথ গন্তব্য উচ্চ আত্মবিশ্বাসের সাথে অনুমান করা গেলে দেখানো হবে।
শুধুমাত্র আইডি দিন অনুপস্থিত সেট অনুপস্থিত প্লেস আইডির জন্য ডিফল্ট নেভিগেশন পয়েন্টে যাওয়ার রুট। স্থান আইডি থেকে
শুধুমাত্র নেভিগেশন পয়েন্ট টোকেন অনুপস্থিত অনুপস্থিত সেট টোকেন দ্বারা চিহ্নিত সুনির্দিষ্ট নেভিগেশন পয়েন্টে যাওয়ার পথ জিওকোডিং এপিআই অনুরোধের মূল গন্তব্য পদ্ধতিতে সংজ্ঞায়িত গন্তব্য থেকে
অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্ক এবং স্থান আইডি একত্রিত সেট সেট অনুপস্থিত নির্ধারিত স্থানাঙ্কের নিকটতম সড়ক খণ্ডে যাওয়ার পথ স্থান আইডি থেকে, যদিও স্থান আইডি অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্ক থেকে খুব দূরে হলে তা দেখানো হয় না।