iOS-এর জন্য নেভিগেশন SDK ব্যবহার করে আপনার অ্যাপের মধ্যে একটি নির্দিষ্ট গন্তব্যে যাওয়ার পথ নির্ধারণ করতে এই নির্দেশিকাটি অনুসরণ করুন।
সংক্ষিপ্ত বিবরণ
- 'আপনার প্রজেক্ট সেট আপ করুন' বিভাগে বর্ণিত পদ্ধতি অনুসারে আপনার অ্যাপে নেভিগেশন এসডিকে (SDK) সংহত করুন।
- একটি
GMSMapViewকনফিগার করুন। - ব্যবহারকারীকে শর্তাবলী ও নিয়মাবলী গ্রহণ করতে এবং অবস্থান পরিষেবা ও ব্যাকগ্রাউন্ড নোটিফিকেশনের অনুমোদন দিতে অনুরোধ করুন।
- এক বা একাধিক গন্তব্যস্থল সম্বলিত একটি অ্যারে তৈরি করুন।
ধাপে ধাপে নেভিগেশন নিয়ন্ত্রণ করতে একটি
GMSNavigatorনির্ধারণ করুন।-
setDestinationsব্যবহার করে গন্তব্যস্থল যোগ করুন। - নেভিগেশন শুরু করতে
isGuidanceActivetrueতে সেট করুন। - আপনার অ্যাপের টেস্টিং, ডিবাগিং এবং প্রদর্শনের জন্য, রুট বরাবর যানবাহনের অগ্রগতি সিমুলেট করতে
simulateLocationsAlongExistingRouteব্যবহার করুন।
-
কোডটি দেখুন
ব্যবহারকারীর কাছে প্রয়োজনীয় অনুমোদন জানতে চান।
নেভিগেশন এসডিকে ব্যবহার করার আগে, ব্যবহারকারীকে অবশ্যই শর্তাবলীতে সম্মত হতে হবে এবং লোকেশন পরিষেবা ব্যবহারের অনুমতি দিতে হবে, যা নেভিগেশনের জন্য আবশ্যক। যদি আপনার অ্যাপটি ব্যাকগ্রাউন্ডে চলে, তবে এটি অবশ্যই ব্যবহারকারীকে গাইডেন্স অ্যালার্ট নোটিফিকেশনের অনুমতি দেওয়ার জন্য অনুরোধ করবে। এই বিভাগে প্রয়োজনীয় অনুমতির অনুরোধগুলো কীভাবে প্রদর্শন করতে হয় তা দেখানো হয়েছে।
অবস্থান পরিষেবা অনুমোদন করুন
নেভিগেশন এসডিকে অবস্থান পরিষেবা ব্যবহার করে, যার জন্য ব্যবহারকারীর অনুমোদন প্রয়োজন। অবস্থান পরিষেবা সক্রিয় করতে এবং অনুমোদন ডায়ালগটি প্রদর্শন করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
-
Info.plistএNSLocationWhenInUseUsageDescriptionএবংNSLocationAlwaysAndWhenInUseUsageকী-গুলো যোগ করুন। ভ্যালু-এর ক্ষেত্রে, আপনার অ্যাপের কেন লোকেশন সার্ভিস প্রয়োজন, তার একটি সংক্ষিপ্ত ব্যাখ্যা যোগ করুন। উদাহরণস্বরূপ: "এই অ্যাপটির টার্ন-বাই-টার্ন নেভিগেশনের জন্য লোকেশন সার্ভিস ব্যবহারের অনুমতি প্রয়োজন।"
অনুমোদন ডায়ালগটি প্রদর্শন করতে, লোকেশন ম্যানেজার ইনস্ট্যান্সের
requestAlwaysAuthorization()মেথডটি কল করুন।
সুইফট
self.locationManager.requestAlwaysAuthorization()
উদ্দেশ্য-সি
[_locationManager requestAlwaysAuthorization];
অবস্থান পরিষেবা অনুমোদনের জন্য অ্যাপলের সম্পূর্ণ ডকুমেন্টেশন দেখুন ।
পটভূমি নির্দেশনার জন্য সতর্কীকরণ বিজ্ঞপ্তি অনুমোদন করুন
অ্যাপটি ব্যাকগ্রাউন্ডে চলার সময় অ্যালার্ট নোটিফিকেশন দেখানোর জন্য নেভিগেশন SDK-এর ব্যবহারকারীর অনুমতির প্রয়োজন হয়। এই নোটিফিকেশনগুলো দেখানোর জন্য ব্যবহারকারীর কাছে অনুমতি চাইতে নিম্নলিখিত কোডটি যোগ করুন:
সুইফট
UNUserNotificationCenter.current().requestAuthorization(options: [.alert]) {
granted, error in
// Handle denied authorization to display notifications.
if !granted || error != nil {
print("User rejected request to display notifications.")
}
}
উদ্দেশ্য-সি
// Request authorization for alert notifications.
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
UNAuthorizationOptions options = UNAuthorizationOptionAlert;
[center requestAuthorizationWithOptions:options
completionHandler:
^(
BOOL granted,
NSError *_Nullable error) {
if (!error && granted) {
NSLog(@"iOS Notification Permission: newly Granted");
} else {
NSLog(@"iOS Notification Permission: Failed or Denied");
}
}];
শর্তাবলী মেনে নিন
ব্যবহারকারী শর্তাবলী গ্রহণ করলে শর্তাবলী ডায়ালগ বক্সটি দেখাতে এবং নেভিগেশন চালু করতে নিম্নলিখিত কোডটি ব্যবহার করুন। উল্লেখ্য যে, এই উদাহরণটিতে অবস্থান পরিষেবা এবং নির্দেশনা সতর্কতা বিজ্ঞপ্তির (যা পূর্বে দেখানো হয়েছে) কোড অন্তর্ভুক্ত রয়েছে।
সুইফট
let termsAndConditionsOptions = GMSNavigationTermsAndConditionsOptions(companyName: "Ride Sharing Co.")
GMSNavigationServices.showTermsAndConditionsDialogIfNeeded(
with: termsAndConditionsOptions) { termsAccepted in
if termsAccepted {
// Enable navigation if the user accepts the terms.
self.mapView.isNavigationEnabled = true
self.mapView.settings.compassButton = true
// Request authorization to use location services.
self.locationManager.requestAlwaysAuthorization()
// Request authorization for alert notifications which deliver guidance instructions
// in the background.
UNUserNotificationCenter.current().requestAuthorization(options: [.alert]) {
granted, error in
// Handle rejection of notification authorization.
if !granted || error != nil {
print("Authorization to deliver notifications was rejected.")
}
}
} else {
// Handle rejection of terms and conditions.
}
}
উদ্দেশ্য-সি
GMSNavigationTermsAndConditionsOptions *termsAndConditionsOptions = [[GMSNavigationTermsAndConditionsOptions alloc] initWithCompanyName:@"Ride Sharing Co."];
[GMSNavigationServices
showTermsAndConditionsDialogIfNeededWithOptions:termsAndConditionsOptions
callback:^(BOOL termsAccepted) {
if (termsAccepted) {
// Enable navigation if the user accepts the terms.
_mapView.navigationEnabled = YES;
_mapView.settings.compassButton = YES;
// Request authorization to use the current device location.
[_locationManager requestAlwaysAuthorization];
// Request authorization for alert notifications which deliver guidance instructions
// in the background.
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
UNAuthorizationOptions options = UNAuthorizationOptionAlert;
[center requestAuthorizationWithOptions:options
completionHandler:
^(
BOOL granted,
NSError *_Nullable error) {
if (!error && granted) {
NSLog(@"iOS Notification Permission: newly Granted");
} else {
NSLog(@"iOS Notification Permission: Failed or Denied");
}
}];
} else {
// Handle rejection of the terms and conditions.
}
}];
একটি রুট তৈরি করুন এবং নির্দেশনা শুরু করুন
একটি রুট নির্ধারণ করতে, নেভিগেটরের setDestinations() মেথডটিকে এক বা একাধিক গন্তব্যের ( GMSNavigationWaypoint ) একটি অ্যারে দিয়ে কল করুন। সফলভাবে গণনা করা হলে, রুটটি মানচিত্রে দেখানো হয়। রুট বরাবর দিকনির্দেশনা শুরু করতে, কলব্যাকে isGuidanceActive কে true সেট করুন।
নিম্নলিখিত উদাহরণটি দেখায়:
- একটি গন্তব্য সহ একটি নতুন রুট তৈরি করা হচ্ছে।
- প্রারম্ভিক নির্দেশনা।
- পটভূমি নির্দেশিকা বিজ্ঞপ্তি সক্রিয় করা হচ্ছে।
- পথ বরাবর ভ্রমণের অনুকরণ (ঐচ্ছিক)।
- ক্যামেরা মোড 'ফলো'-তে সেট করা (ঐচ্ছিক)।
সুইফট
func startNav() {
var destinations = [GMSNavigationWaypoint]()
destinations.append(GMSNavigationWaypoint.init(placeID: "ChIJnUYTpNASkFQR_gSty5kyoUk",
title: "PCC Natural Market")!)
mapView.navigator?.setDestinations(destinations) { routeStatus in
self.mapView.navigator?.isGuidanceActive = true
self.mapView.locationSimulator?.simulateLocationsAlongExistingRoute()
self.mapView.cameraMode = .following
}
}
উদ্দেশ্য-সি
- (void)startNav {
NSArray<GMSNavigationWaypoint *> *destinations =
@[[[GMSNavigationWaypoint alloc] initWithPlaceID:@"ChIJnUYTpNASkFQR_gSty5kyoUk"
title:@"PCC Natural Market"],
[_mapView.navigator setDestinations:destinations
callback:^(GMSRouteStatus routeStatus){
[_mapView.locationSimulator simulateLocationsAlongExistingRoute];
_mapView.navigator.guidanceActive = YES;
_mapView.cameraMode = GMSNavigationCameraModeFollowing;
}];
}
স্থান আইডি সম্পর্কে জানতে অনুগ্রহ করে স্থান আইডি দেখুন।
একাধিক স্টপ সিনারিও
আপনি সর্বোচ্চ ২৫টি ওয়েপয়েন্ট কনফিগার করতে পারবেন।
setDestinations মেথডটি একাধিক স্টপ সহ যাত্রা সমর্থন করে না। যাত্রার পরবর্তী ধাপে ওয়েপয়েন্টকে এগিয়ে নিতে continueToNextDestination() ব্যবহার করুন।
ভ্রমণ মোড সেট করুন
ভ্রমণ মোড নির্ধারণ করে কোন ধরনের রুট নেওয়া হবে এবং ব্যবহারকারীর গতিপথ কীভাবে নির্ধারিত হবে। আপনি একটি রুটের জন্য চারটি ভ্রমণ মোডের মধ্যে যেকোনো একটি সেট করতে পারেন: ড্রাইভিং, সাইক্লিং, ওয়াকিং এবং ট্যাক্সি। ড্রাইভিং এবং ট্যাক্সি মোডে, ব্যবহারকারীর গতিপথ ভ্রমণের দিকের উপর ভিত্তি করে নির্ধারিত হয়; সাইক্লিং এবং ওয়াকিং মোডে, ডিভাইসটি যেদিকে মুখ করে থাকে সেই দিক দ্বারা গতিপথ নির্দেশিত হয় (ল্যান্ডস্কেপ মোডে ডিভাইসের উপরের দিকে)।
নিচের উদাহরণে দেখানো অনুযায়ী ম্যাপ ভিউ-এর travelMode প্রপার্টিটি সেট করুন:
সুইফট
self.mapView.travelMode = .cycling
উদ্দেশ্য-সি
_mapView.travelMode = GMSNavigationTravelModeCycling;
এড়ানোর জন্য রাস্তা নির্ধারণ করুন
কোনো রুটে হাইওয়ে এবং/অথবা টোল রোড এড়িয়ে চলার জন্য avoidsHighways এবং avoidsTolls BOOL প্রপার্টিগুলো ব্যবহার করুন।
সুইফট
self.mapView.navigator?.avoidsTolls = true
উদ্দেশ্য-সি
_mapView.navigator.avoidsTolls = YES;
প্লেসআইডি ফাইন্ডার
রুটের গন্তব্য হিসেবে ব্যবহার করার জন্য প্লেস আইডি খুঁজে পেতে আপনি প্লেসআইডি ফাইন্ডার ব্যবহার করতে পারেন। GMSNavigationWaypoint এর মাধ্যমে একটি placeID থেকে গন্তব্য যোগ করুন।
ভাসমান লেখা
আপনি আপনার অ্যাপের যেকোনো জায়গায় ফ্লোটিং টেক্সট যোগ করতে পারেন, যতক্ষণ পর্যন্ত তা গুগল অ্যাট্রিবিউশনের আওতায় না থাকে। নেভিগেশন SDK ম্যাপের কোনো অক্ষাংশ/দ্রাঘিমাংশ বা কোনো লেবেলে টেক্সট অ্যাঙ্কর করা সমর্থন করে না। আরও তথ্যের জন্য, ইনফো উইন্ডোজ দেখুন।