iOS-এর জন্য Navigation SDK, ওয়েপয়েন্ট বা নেভিগেশন পয়েন্ট নির্দিষ্ট করার উন্নত উপায় অফার করে, যা আরও সঠিক রুট এবং আরও ভালো আগমনের অভিজ্ঞতা প্রদান করে, বিশেষ করে একাধিক প্রবেশপথ বা নির্দিষ্ট নেভিগেশন পয়েন্ট সহ গন্তব্যের জন্য। আপনি
navigationPointToken ব্যবহার করে সুনির্দিষ্ট লোকেশনে রুট করতে পারবেন, যা একটি স্ট্রিং যা একটি লোকেশন এবং অতিরিক্ত
রুটের প্রসঙ্গ এনকোড করে। এছাড়াও, আপনি অতিরিক্ত প্রসঙ্গের জন্য স্থান আইডির সাথে অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্ক একত্রিত করতে পারেন।
ব্যাকগ্রাউন্ড
v10.10-এর আগে, আপনি লোকেশন কোঅর্ডিনেট
অথবা একটি স্থান আইডি ব্যবহার করে একটি Waypoint সংজ্ঞায়িত করতে পারতেন। কখনও কখনও কার্যকর হলেও, শুধুমাত্র অক্ষাংশ এবং দ্রাঘিমাংশের উপর ভিত্তি করে রুট তৈরি করলে, কখনও কখনও ড্রপ-অফ বা পিক-আপ পয়েন্টগুলি সাবঅপ্টিমাল হতে পারে, বিশেষ করে বড় ভেন্যু, পার্ক বা একাধিক প্রবেশদ্বার সহ বিল্ডিংয়ের ক্ষেত্রে। ফলাফলটি সবচেয়ে কাছের রাস্তার অংশকে স্ন্যাপ করতে পারে, যা সবচেয়ে সুবিধাজনক বা সঠিক অ্যাক্সেস পয়েন্ট নাও হতে পারে।
উন্নত ওয়েপয়েন্ট বিকল্পের মাধ্যমে আপনি আরও প্রাসঙ্গিক তথ্য প্রদান করতে পারবেন।
নেভিগেশন পয়েন্ট টোকেন ব্যবহার করা
প্রবেশপথ, লোডিং ডক বা নির্দিষ্ট পিক-আপ এলাকার মতো নির্দিষ্ট অ্যাক্সেস পয়েন্টে সবচেয়ে সঠিক রাউটিংয়ের জন্য, আপনি navigationPointToken ব্যবহার করতে পারেন।
Geocoding API-এর Destinations পদ্ধতি কল করে এই টোকেন পাওয়া যায়। এটি কোনও জায়গার সাথে যুক্ত নির্দিষ্ট, রুট করা যায় এমন নেভিগেশন পয়েন্টকে বোঝায়।
নেভিগেশন পয়েন্ট টোকেন নির্দিষ্ট করতে:
Geocoding API-এর Destinations পদ্ধতি থেকে পাওয়া রেসপন্স থেকে
navigationPointTokenপান।GMSNavigationWaypointতৈরি করার সময়navigationPointTokenউল্লেখ করুন।
Swift
// Create a waypoint using a navigation endpoint token
let waypointTwo = GMSNavigationWaypoint(
navigationPointToken: "ChIJALijSXPhQkARHmIozCCbXsASEgkFVjYHGH6PgBFrbM7wl3..",
title: "Sydney Opera House")
// Route to the waypoint
navigator.setDestinations([waypointTwo]) { [weak self] routeStatus in
self?.handleRouteCallback(status: routeStatus)
}
Objective-C
GMSNavigationWaypoint *waypointTwo =
[[GMSNavigationWaypoint alloc] initWithNavigationPointToken:@"sampleNavigationPointToken"
title:@"Sydney Opera House"];
নেভিগেশন পয়েন্ট টোকেন ও রুট টোকেন ব্যবহার করা
আপনি Geocoding API-এর মাধ্যমে নেভিগেশন পয়েন্ট টোকেন এবং Routes API থেকে রুট টোকেন পেতে পারেন এবং তারপর নেভিগেশন পয়েন্ট টোকেন ও রুট টোকেন, দুটিই Navigation SDK-তে পাস করতে পারেন। এটি রাইডশেয়ার বা ডেলিভারির মতো পরিস্থিতিতে উপযোগী, যেখানে আপনি ট্রিপের মূল্য গণনা করতে Routes API ব্যবহার করেন এবং আপনি নেভিগেশন পয়েন্ট টোকেনের নির্ভুলতা চান।
রুট টোকেনের মাধ্যমে, Navigation SDK সেই একই রুটে নেভিগেশন শুরু করে যেটি আপনি ভাড়া হিসেব করার জন্য ব্যবহার করেছেন। এর ফলে ট্রিপের জন্য বেশি বা কম দূরত্বের রুট ব্যবহার করার ঝুঁকি কমে যায়, যা "ভাড়ার ক্ষেত্রে বড়সড় ধাক্কা" তৈরি করতে পারে।
নেভিগেশন পয়েন্ট টোকেন ব্যবহার করে লোকেশন নির্দিষ্ট করা এবং রুট টোকেন তৈরি করা সম্পর্কে আরও জানতে Routes API ডকুমেন্টেশন দেখুন। রুট টোকেন ব্যবহার করে কীভাবে রুট প্ল্যান করতে হয় তা জানতে "রুট প্ল্যান করুন" দেখুন।
এই ডায়াগ্রাম থেকে বোঝা যায় যে রাইডশেয়ার বা ডেলিভারি অ্যাপ কীভাবে নেভিগেশন পয়েন্ট টোকেন ও রুট টোকেন একসাথে ব্যবহার করে:
জায়গার আইডি ও লোকেশন একত্রিত করুন
v10.10 থেকে শুরু করে, আপনি একটি ওয়েপয়েন্ট তৈরি করার সময়, একটি স্থান আইডি এবং লোকেশন কোঅর্ডিনেট উভয়ই প্রদান করতে পারেন। এই পদ্ধতিটি তখন উপযোগী যখন আপনি একটি সুনির্দিষ্ট পয়েন্ট (লোকেশন) উল্লেখ করতে চান এবং একই সাথে সামগ্রিক স্থানের (প্লেস আইডি) প্রসঙ্গ প্রদান করতে চান। এটি Navigation SDK-কে গন্তব্য বিল্ডিং হাইলাইট করে বা প্লেস আইডির সাথে সম্পর্কিত কাছাকাছি আগ্রহের পয়েন্টগুলি দেখিয়ে আরও সমৃদ্ধ আগমনের অভিজ্ঞতা প্রদান করতে দেয়।
Swift
// Create a waypoint using both the latlng and placeID
let waypoint = GMSNavigationWaypoint(
location: CLLocationCoordinate2DMake(-33.85657945261524, 151.21535034203333),
placeID: "ChIJ3S-JXmauEmsRUcIaWtf4MzE",
title: "Sydney Opera House")
// Route to the waypoint
navigator.setDestinations([waypoint]) { [weak self] routeStatus in
self?.handleRouteCallback(status: routeStatus)
}
Objective-C
CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20);
GMSNavigationWaypoint *waypoint = [[GMSNavigationWaypoint alloc] initWithLocation:placeID:coordinate title:@"waypoint from location and placeiD"];
বিবেচ্য বিষয়:
আপনি placeID এবং location দুটিই প্রদান করলে:
- রুটটি মূলত নির্দিষ্ট
location-কে টার্গেট করে। placeId-কে প্রসঙ্গ হিসেবে ব্যবহার করে গন্তব্যে পৌঁছানোর অভিজ্ঞতা আরও উন্নত করা হয়।- ফলব্যাক: SDK যদি নির্ধারণ করে যে প্রদত্ত
placeId, প্রদত্তlocationথেকে অনেক দূরে থাকা কোনও ফিচারের সাথে সম্পর্কিত, তাহলেplaceIdএড়িয়ে যাওয়া হবে। এই পরিস্থিতিতে, রাউটিং শুধুমাত্রlocation-এ এগিয়ে যাবে, এবং জায়গা-নির্দিষ্ট পৌঁছানোর অভিজ্ঞতা সংক্রান্ত উন্নতি উপলভ্য হবে না।
সঠিক ওয়েপয়েন্ট কনফিগারেশনের সারাংশ
| স্পেসিফিকেশন | location |
placeID |
navigationPointToken |
রাউটিং সংক্রান্ত আচরণ | গন্তব্য হাইলাইট করা |
|---|---|---|---|---|---|
| শুধুমাত্র লোকেশন কোঅর্ডিনেট | সেট করো | অনুপস্থিত | অনুপস্থিত | নির্দিষ্ট করা স্থানাঙ্কের সবচেয়ে কাছের রাস্তার অংশের রুট | গন্তব্য সম্পর্কে নিশ্চিত হলে দেখানো হয় |
| শুধু Place ID | অনুপস্থিত | সেট করো | অনুপস্থিত | প্লেস আইডির জন্য ডিফল্ট নেভিগেশন পয়েন্টের রুট | যাত্রা শুরুর জায়গার আইডি |
| শুধুমাত্র নেভিগেশন পয়েন্ট টোকেন | অনুপস্থিত | অনুপস্থিত | সেট করো | টোকেন দ্বারা উপস্থাপিত সুনির্দিষ্ট নেভিগেশন পয়েন্টের রুট | Geocoding API-এর গন্তব্য পদ্ধতি-এর আসল অনুরোধে উল্লেখ করা গন্তব্য থেকে |
| লোকেশন কোঅর্ডিনেট ও প্লেস আইডি একসাথে | se | সেট করো | অনুপস্থিত | নির্দিষ্ট করা স্থানাঙ্কের সবচেয়ে কাছের রাস্তার অংশের রুট | প্লেস আইডি থেকে, যদিও প্লেস আইডি অক্ষাংশ/দ্রাঘিমাংশ কোঅর্ডিনেট থেকে অনেক দূরে থাকলে দেখানো হয় না |