Android-এর জন্য Navigation SDK, ওয়েপয়েন্ট বা নেভিগেশন পয়েন্ট নির্দিষ্ট করার উন্নত উপায় অফার করে, যা আরও সঠিক রুট এবং আরও ভালো আগমনের অভিজ্ঞতা প্রদান করে, বিশেষ করে একাধিক প্রবেশপথ বা নির্দিষ্ট নেভিগেশন পয়েন্ট সহ গন্তব্যের জন্য। আপনি
navigationPointToken ব্যবহার করে সুনির্দিষ্ট লোকেশনে রুট করতে পারবেন, যা একটি স্ট্রিং যা একটি লোকেশন এবং অতিরিক্ত
রুটের প্রসঙ্গ এনকোড করে। এছাড়াও, আপনি অতিরিক্ত প্রসঙ্গের জন্য স্থান আইডির সাথে অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্ক একত্রিত করতে পারেন।
ব্যাকগ্রাউন্ড
v7.4-এর আগে, আপনি অক্ষাংশ ও দ্রাঘিমাংশ স্থানাঙ্ক অথবা কোনও স্থান আইডি ব্যবহার করে
Waypoint সংজ্ঞায়িত করতে পারতেন। কখনও কখনও কার্যকর হলেও, শুধুমাত্র অক্ষাংশ এবং দ্রাঘিমাংশ অনুযায়ী রুট করলে কখনও কখনও ড্রপ-অফ বা পিক-আপ পয়েন্টগুলি সাবঅপ্টিমাল হতে পারে, বিশেষ করে বড় ভেন্যু, পার্ক বা একাধিক প্রবেশদ্বার সহ বিল্ডিংয়ের ক্ষেত্রে। ফলাফলটি সবচেয়ে কাছের রাস্তার অংশের সাথে স্ন্যাপ করতে পারে, যা সবচেয়ে সুবিধাজনক বা সঠিক নেভিগেশন পয়েন্ট নাও হতে পারে।
উন্নত ওয়েপয়েন্ট বিকল্প আরও বেশি প্রাসঙ্গিক তথ্য প্রদান করার অনুমতি দিয়ে এই সমস্যার সমাধান করে।
নেভিগেশন পয়েন্ট টোকেন ব্যবহার করা
প্রবেশপথ, লোডিং ডক বা নির্দিষ্ট পিক-আপ এলাকার মতো নির্দিষ্ট নেভিগেশন পয়েন্টে সবচেয়ে নিখুঁত রুটিংয়ের জন্য, আপনি
navigationPointToken ব্যবহার করতে পারেন। Geocoding API-এর destinations
মেথড কল করে এই টোকেন পাওয়া যায়। এটি কোনও জায়গার সাথে যুক্ত নির্দিষ্ট, রুট করা যায় এমন নেভিগেশন পয়েন্টকে
বোঝায়।
নেভিগেশন পয়েন্ট টোকেন নির্দিষ্ট করতে:
- Geocoding API-এর Destinations পদ্ধতি
থেকে পাওয়া রেসপন্স থেকে
navigationPointTokenপান। - বিল্ডারে
setNavigationPointToken()পদ্ধতি ব্যবহার করেWaypointতৈরি করুন।
// 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-তে পাস করতে পারেন। এটি রাইডশেয়ার বা ডেলিভারির মতো পরিস্থিতিতে উপযোগী, যেখানে আপনি ট্রিপের মূল্য গণনা করতে Routes API ব্যবহার করেন এবং আপনি নেভিগেশন পয়েন্ট টোকেনের নির্ভুলতা চান।
রুট টোকেনের মাধ্যমে, Navigation SDK সেই একই রুটে নেভিগেশন শুরু করে যেটি আপনি ভাড়া হিসেব করার জন্য ব্যবহার করেছেন। এর ফলে ট্রিপের জন্য বেশি বা কম দূরত্বের রুট ব্যবহার করার ঝুঁকি কমে যায়, যা "ভাড়ার ক্ষেত্রে বড়সড় ধাক্কা" তৈরি করতে পারে।
নেভিগেশন পয়েন্ট টোকেন ব্যবহার করে লোকেশন নির্দিষ্ট করা এবং রুট টোকেন তৈরি করা সম্পর্কে আরও জানতে Routes API ডকুমেন্টেশন দেখুন। রুট টোকেন ব্যবহার করে কীভাবে রুট প্ল্যান করতে হয় তা জানতে "রুট প্ল্যান করুন" দেখুন।
এই ডায়াগ্রাম থেকে বোঝা যায় যে রাইডশেয়ার বা ডেলিভারি অ্যাপ কীভাবে নেভিগেশন পয়েন্ট টোকেন ও রুট টোকেন একসাথে ব্যবহার করে:
প্লেস আইডি এবং অক্ষাংশ ও দ্রাঘিমাংশ একত্রিত করুন
v7.4 থেকে শুরু করে, আপনি Waypoint তৈরি করার সময়, একটি স্থান আইডি এবং অক্ষাংশ ও দ্রাঘিমাংশ স্থানাঙ্ক উভয়ই প্রদান করতে পারেন। এই পদ্ধতিটি তখন উপযোগী যখন আপনি
একটি সুনির্দিষ্ট পয়েন্ট (অক্ষাংশ/দ্রাঘিমাংশ) নির্দিষ্ট করতে চান এবং একই সাথে
সামগ্রিক স্থানের (স্থান আইডি) প্রসঙ্গ প্রদান করতে চান। এর ফলে Navigation SDK গন্তব্যের বিল্ডিং হাইলাইট করে বা প্লেস আইডির সাথে সম্পর্কিত কাছাকাছি আগ্রহের জায়গা দেখিয়ে
গন্তব্যে পৌঁছানোর আরও সমৃদ্ধ অভিজ্ঞতা
প্রদান করতে পারে।
// 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() |
রাউটিং সংক্রান্ত আচরণ | গন্তব্য হাইলাইট করা |
|---|---|---|---|---|---|
| শুধুমাত্র অক্ষাংশ/দ্রাঘিমাংশ কোঅর্ডিনেট | সেট করো | অনুপস্থিত | অনুপস্থিত | নির্দিষ্ট করা স্থানাঙ্কের সবচেয়ে কাছের রাস্তার অংশের রুট | গন্তব্য সম্পর্কে নিশ্চিত হলে দেখানো হয় |
| শুধু Place ID | অনুপস্থিত | সেট করো | অনুপস্থিত | প্লেস আইডির জন্য ডিফল্ট নেভিগেশন পয়েন্টের রুট | যাত্রা শুরুর জায়গার আইডি |
| শুধুমাত্র নেভিগেশন পয়েন্ট টোকেন | অনুপস্থিত | অনুপস্থিত | সেট করো | টোকেন দ্বারা উপস্থাপিত সুনির্দিষ্ট নেভিগেশন পয়েন্টের রুট | Geocoding API-এর গন্তব্য পদ্ধতি-এর আসল অনুরোধে উল্লেখ করা গন্তব্য থেকে |
| অক্ষাংশ/দ্রাঘিমাংশ কোঅর্ডিনেট এবং স্থান আইডি একসাথে | সেট করো | সেট করো | অনুপস্থিত | নির্দিষ্ট করা স্থানাঙ্কের সবচেয়ে কাছের রাস্তার অংশের রুট | প্লেস আইডি থেকে, যদিও প্লেস আইডি অক্ষাংশ/দ্রাঘিমাংশ কোঅর্ডিনেট থেকে অনেক দূরে থাকলে দেখানো হয় না |