किसी रास्ते पर नेविगेट करें

iOS के लिए नेविगेशन SDK का इस्तेमाल करके अपने ऐप्लिकेशन में रूट को किसी एक मंज़िल पर प्लॉट करने के लिए इस गाइड का पालन करें.

खास जानकारी

  1. अपना प्रोजेक्ट सेट अप करें सेक्शन में बताए गए तरीके से, अपने ऐप्लिकेशन में नेविगेशन SDK टूल इंटिग्रेट करें.
  2. GMSMapView को कॉन्फ़िगर करें.
  3. उपयोगकर्ता से कहें कि वह नियमों और शर्तों को स्वीकार करे. साथ ही, जगह की जानकारी देने वाली सेवाओं और बैकग्राउंड में मिलने वाली सूचनाओं को अनुमति दें.
  4. एक या उससे ज़्यादा डेस्टिनेशन वाला कलेक्शन बनाएं.
  5. मोड़-दर-मोड़ नेविगेशन को कंट्रोल करने के लिए, GMSNavigator तय करें.

    • setDestinations का इस्तेमाल करके डेस्टिनेशन जोड़ें.
    • नेविगेशन शुरू करने के लिए, isGuidanceActive को true पर सेट करें.
    • रास्ते में वाहन की प्रोग्रेस को सिम्युलेट करने, ऐप्लिकेशन की जांच करने, उसे डीबग करने, और उसके बारे में जानकारी देने के लिए, simulateLocationsAlongExistingRoute का इस्तेमाल करें.

कोड देखें

उपयोगकर्ता को ज़रूरी अनुमतियों के लिए अनुरोध करें

नेविगेशन SDK टूल का इस्तेमाल करने से पहले, उपयोगकर्ता को नियमों और शर्तों से सहमत होना होगा और जगह की जानकारी के इस्तेमाल की अनुमति देनी होगी, जो नेविगेशन के लिए ज़रूरी है. अगर आपका ऐप्लिकेशन बैकग्राउंड में चलता है, तो उपयोगकर्ता को यह सूचना भी दी जानी चाहिए कि उपयोगकर्ता को, दिशा-निर्देशों से जुड़ी चेतावनी की सूचनाएं भेजने की अनुमति देनी है. इस सेक्शन में, ज़रूरी अनुमति पाने के अनुरोधों को दिखाने का तरीका बताया गया है.

जगह की जानकारी को अनुमति दें

नेविगेशन SDK टूल, जगह की जानकारी का इस्तेमाल करता है, जिसके लिए उपयोगकर्ता की अनुमति की ज़रूरत होती है. जगह की जानकारी चालू करने और अनुमति वाला डायलॉग दिखाने के लिए, यह तरीका अपनाएं:

  1. NSLocationAlwaysUsageDescription कुंजी को Info.plist में जोड़ें.
  2. ज़्यादा जानकारी के लिए, कम शब्दों में यह बताएं कि आपके ऐप्लिकेशन को जगह की जानकारी की ज़रूरत क्यों है. उदाहरण के लिए: "इस ऐप्लिकेशन को मोड़-दर-मोड़ नेविगेशन के लिए जगह की जानकारी का इस्तेमाल करने की अनुमति चाहिए."

  3. अनुमति देने वाला डायलॉग दिखाने के लिए, लोकेशन मैनेजर के इंस्टेंस के requestAlwaysAuthorization() को कॉल करें.

Swift

self.locationManager.requestAlwaysAuthorization()

Objective-C

[_locationManager requestAlwaysAuthorization];

बैकग्राउंड में दिशा-निर्देशों के बारे में सूचनाएं पाने के लिए, सूचनाएं पाने की अनुमति दें

बैकग्राउंड में ऐप्लिकेशन चालू रहने पर नेविगेशन SDK टूल को सूचना देने के लिए उपयोगकर्ता की अनुमति की ज़रूरत होती है. लोगों को इन सूचनाओं को दिखाने की अनुमति लेने का अनुरोध करने के लिए, यह कोड जोड़ें:

Swift

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.")
    }
}

Objective-C

// 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");
     }
   }];

नियम और शर्तें स्वीकार करें

नियम और शर्तें दिखाने वाला डायलॉग दिखाने के लिए, नीचे दिए गए कोड का इस्तेमाल करें. साथ ही, जब उपयोगकर्ता इन शर्तों को स्वीकार कर ले, तब नेविगेशन चालू करें. ध्यान दें कि इस उदाहरण में, जगह की जानकारी से जुड़ी सेवाओं और दिशा-निर्देशों से जुड़ी चेतावनियों की सूचनाओं का कोड शामिल है (जिसे पहले दिखाया गया था).

Swift

let companyName = "Ride Sharing Co."
GMSNavigationServices.showTermsAndConditionsDialogIfNeeded(
  withCompanyName: companyName) { 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.
  }
}

Objective-C

NSString *companyName = @"Ride Sharing Co.";
[GMSNavigationServices
  showTermsAndConditionsDialogIfNeededWithCompanyName:companyName
  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.
   }
 }];

कोई रूट बनाएं और दिशा-निर्देश शुरू करें

कोई रूट प्लॉट करने के लिए, Navigator के setDestinations() तरीके को कॉल करें. इसमें एक ऐसा कलेक्शन शामिल करें जिसमें एक या उससे ज़्यादा डेस्टिनेशन (GMSNavigationWaypoint) शामिल हों. सही तरीके से हिसाब लगाए जाने पर, रास्ते को मैप पर दिखाया जाता है. रास्ते के बारे में दिशा-निर्देश शुरू करने के लिए, पहली मंज़िल से शुरू करते हुए, कॉलबैक में isGuidanceActive को true पर सेट करें.

यहां दिए गए उदाहरण में यह जानकारी दी गई है:

  • दो मंज़िलों वाला नया रास्ता बनाया जा रहा है.
  • दिशा-निर्देश उपलब्ध कराए जा रहे हैं.
  • बैकग्राउंड में दिशा-निर्देश की सूचनाएं पाने की सुविधा चालू की जा रही है.
  • रास्ते में पड़ने वाली यात्रा को सिम्युलेट किया जा रहा है (ज़रूरी नहीं).
  • कैमरा मोड को "फ़ॉलो करें" पर सेट करना (ज़रूरी नहीं).

Swift

func startNav() {
  var destinations = [GMSNavigationWaypoint]()
  destinations.append(GMSNavigationWaypoint.init(placeID: "ChIJnUYTpNASkFQR_gSty5kyoUk",
                                                 title: "PCC Natural Market")!)
  destinations.append(GMSNavigationWaypoint.init(placeID:"ChIJJ326ROcSkFQRBfUzOL2DSbo",
                                                 title:"Marina Park")!)

  mapView.navigator?.setDestinations(destinations) { routeStatus in
    self.mapView.navigator?.isGuidanceActive = true
    self.mapView.locationSimulator?.simulateLocationsAlongExistingRoute()
    self.mapView.cameraMode = .following
  }
}

Objective-C

- (void)startNav {
  NSArray<GMSNavigationWaypoint *> *destinations =
  @[[[GMSNavigationWaypoint alloc] initWithPlaceID:@"ChIJnUYTpNASkFQR_gSty5kyoUk"
                                             title:@"PCC Natural Market"],
    [[GMSNavigationWaypoint alloc] initWithPlaceID:@"ChIJJ326ROcSkFQRBfUzOL2DSbo"
                                             title:@"Marina Park"]];

  [_mapView.navigator setDestinations:destinations
                             callback:^(GMSRouteStatus routeStatus){
                               [_mapView.locationSimulator simulateLocationsAlongExistingRoute];
                               _mapView.navigator.guidanceActive = YES;
                               _mapView.cameraMode = GMSNavigationCameraModeFollowing;
                             }];
}

जगह के आईडी के बारे में जानने के लिए, कृपया जगह के आईडी देखें.

यात्रा का मोड सेट करें

यात्रा मोड से तय होता है कि किस तरह का रास्ता फ़ेच किया जाएगा और उपयोगकर्ता के कोर्स का तरीका कैसे तय किया जाएगा. किसी रास्ते के लिए, यात्रा के इन चार मोड में से किसी एक को सेट किया जा सकता है: ड्राइविंग, साइकल चलाना, पैदल चलना, और टैक्सी. ड्राइविंग और टैक्सी मोड में, उपयोगकर्ता की यात्रा की दिशा के आधार पर कोर्स दिखाया जाता है. साइकलिंग और वॉकिंग मोड में कोर्स को उस दिशा में दिखाया जाता है जिस दिशा में डिवाइस दिख रहा है.

मैप व्यू की travelMode प्रॉपर्टी को सेट करें, जैसा कि इस उदाहरण में दिखाया गया है:

Swift

self.mapView.travelMode = .cycling

Objective-C

_mapView.travelMode = GMSNavigationTravelModeCycling;

बचने के लिए सड़कें सेट करें

रास्ते में पड़ने वाली हाइवे और/या टोल सड़कों से बचने के लिए, avoidsHighways और avoidsTolls BOOL प्रॉपर्टी का इस्तेमाल करें.

Swift

self.mapView.navigator?.avoidsTolls = true

Objective-C

_mapView.navigator.avoidsTolls = YES;

प्लेस आईडी फ़ाइंडर

रूट के डेस्टिनेशन के लिए इस्तेमाल होने वाले जगह के आईडी ढूंढने के लिए, PlaceID Finder का इस्तेमाल किया जा सकता है.

फ़्लोटिंग टेक्स्ट

जब तक Google एट्रिब्यूशन को शामिल नहीं किया जाता, तब तक आपके ऐप्लिकेशन में कहीं भी फ़्लोटिंग टेक्स्ट जोड़ा जा सकता है. नेविगेशन SDK टूल से, मैप पर किसी अक्षांश/देशांतर या किसी लेबल पर टेक्स्ट को ऐंकर करने की सुविधा काम नहीं करती. ज़्यादा जानकारी के लिए, जानकारी विंडो देखें.