iOS के लिए Driver SDK टूल का इस्तेमाल शुरू करना

ड्राइवर SDK टूल एक लाइब्रेरी है, जिसे ड्राइवर ऐप्लिकेशन के साथ इंटिग्रेट किया जा सकता है. हां यह फ़्लीट इंजन को वाहन की जगह, रास्ता, और दूरी और ETA. यह नेविगेशन SDK टूल के साथ भी काम करता है, यह ड्राइवर के लिए मोड़-दर-मोड़ रास्ते की जानकारी देता है.

सिस्टम में कम से कम यह कॉन्फ़िगरेशन होना चाहिए

  • मोबाइल डिवाइस, iOS 14 पर चल रहा होना चाहिए या बाद में.
  • एक्सकोड वर्शन 15 या इसके बाद के वर्शन.
  • ज़रूरी शर्तें

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

    आपको iOS के लिए Maps SDK टूल भी चालू करना होगा को ऐक्सेस करें और एपीआई पाएं कुंजी.

    लोकल डेवलपमेंट

    लोकल डेवलपमेंट के लिए, Cloud SDK टूल.

    gcloud

    gcloud auth login
    

    साइन इन करने के लिए इस्तेमाल किया जाने वाला ईमेल पता, Workspace ग्रुप का सदस्य होना चाहिए.

    ऑटोमेशन (सिस्टम बनाना या लगातार इंटिग्रेशन करना)

    ऑटोमेशन होस्ट को इसके हिसाब से सेट अप करना सबसे सही तरीके:

    • अगर आपकी प्रोसेस Google Cloud के एनवायरमेंट में चलती है, तो इसका इस्तेमाल करें ऑटोमैटिक क्रेडेंशियल की पहचान करें.

    • अगर ऐसा नहीं है, तो सेवा खाते की कुंजी वाली फ़ाइल को होस्ट का फ़ाइल-सिस्टम है और GOOGLE_APPLICATION_CREDENTIALS एनवायरमेंट वैरिएबल में सही तरीके से बदलाव किया हो.

    क्रेडेंशियल से जुड़े सेवा खाते का ईमेल पता, शामिल हैं.

    प्रोजेक्ट कॉन्फ़िगरेशन

    Swift पैकेज मैनेजर

    ड्राइवर SDK टूल को के ज़रिए इंस्टॉल किया जा सकता है Swift पैकेज मैनेजर. SDK टूल जोड़ने के लिए, पक्का करें कि सभी मौजूदा ड्राइवर SDK डिपेंडेंसी हटा दी गई हैं.

    SDK टूल को किसी नए या मौजूदा प्रोजेक्ट में जोड़ने के लिए, यह तरीका अपनाएं:

    1. अपना Xcode project या workspace खोलें. इसके बाद, फ़ाइल > पैकेज डिपेंडेंसी जोड़ें.
    2. यूआरएल के तौर पर https://github.com/googlemaps/ios-driver-sdk डालें और Enter दबाएं पैकेज खोलने के लिए, और "पैकेज जोड़ें" पर क्लिक करें.
    3. किसी खास version को इंस्टॉल करने के लिए, डिपेंडेंसी नियम फ़ील्ड को इनमें से किसी एक पर सेट करें विकल्प चुने जा सकते हैं. नए प्रोजेक्ट के लिए, हमारा सुझाव है कि आप सबसे नया वर्शन और सटीक वर्शन का इस्तेमाल करके का विकल्प शामिल है. यह प्रोसेस पूरी होने के बाद, "Add Package" पर क्लिक करें.
    4. पैकेज प्रॉडक्ट चुनें विंडो से, पुष्टि करें कि GoogleRidesharingDriver को पैकेज प्रॉडक्ट में जोड़ा जाएगा आपका तय किया गया main टारगेट. यह प्रोसेस पूरी होने के बाद, "Add Package" पर क्लिक करें.
    5. अपने इंस्टॉलेशन की पुष्टि करने के लिए, टारगेट के General पैनल पर जाएं. फ़्रेमवर्क, लाइब्रेरी, और एम्बेड किए गए कॉन्टेंट में, आपको इंस्टॉल किए गए पैकेज दिखेंगे. "पैकेज डिपेंडेंसी" भी देखी जा सकती है "प्रोजेक्ट नेविगेटर" का सेक्शन पैकेज और उसके वर्शन की पुष्टि करने के लिए.

    अगर आपको किसी मौजूदा प्रोजेक्ट के लिए package को अपडेट करना है, तो यह तरीका अपनाएं:

    1. अगर आप 9.0.0 से पहले के वर्शन से अपग्रेड कर रहे हैं, तो आपको ये डिपेंडेंसी: GoogleMapsBase, GoogleMapsCore, और अपग्रेड करने के बाद, GoogleMapsM4B देने होंगे. इसके लिए डिपेंडेंसी न हटाएं GoogleMaps. ज़्यादा जानकारी के लिए, देखें वर्शन 9.0.0 के बारे में जानकारी.

      अपने Xcode प्रोजेक्ट की कॉन्फ़िगरेशन सेटिंग में जाकर, Frameworks, Libraries, और एम्बेड किया गया कॉन्टेंट शामिल है. नीचे दिए गए फ़्रेमवर्क को हटाने के लिए, माइनस साइन(-) का इस्तेमाल करें:

      • GoogleMapsBase (सिर्फ़ 9.0.0 से पहले के वर्शन से अपग्रेड करने के लिए)
      • GoogleMapsCore (सिर्फ़ 9.0.0 से पहले के वर्शन से अपग्रेड करने के लिए)
      • GoogleMapsM4B (सिर्फ़ 9.0.0 से पहले के वर्शन से अपग्रेड करने के लिए)
    2. Xcode से, "फ़ाइल > पैकेज > सबसे नए पैकेज वर्शन पर अपडेट करें".
    3. इंस्टॉल किए जाने की पुष्टि के लिए, Project Navigator के पैकेज डिपेंडेंसी सेक्शन पर जाएं पैकेज और उसके वर्शन की पुष्टि करने के लिए.

    इनका इस्तेमाल करके जोड़ी गई मौजूदा ड्राइवर SDK डिपेंडेंसी हटाने के लिए CocoaPods, यह तरीका अपनाएं:

    1. अपना Xcode फ़ाइल फ़ोल्डर बंद करें. टर्मिनल खोलें और नीचे दिया गया निर्देश चलाएं:
      sudo gem install cocoapods-deintegrate cocoapods-clean 
      pod deintegrate 
      pod cache clean --all
    2. Podfile, Podfile.resolved, और अगर CocoaPods के अलावा, किसी और चीज़ के लिए उनका इस्तेमाल नहीं किया जा रहा है, तो Xcode workspace.

    इंस्टॉल किए गए मौजूदा ड्राइवर SDK को हटाने के लिए तो मैन्युअल रूप से, इन चरणों का पालन करें:

    1. अपने Xcode प्रोजेक्ट की कॉन्फ़िगरेशन सेटिंग में जाकर, Frameworks, लाइब्रेरी और एम्बेड किया गया कॉन्टेंट. हटाने के लिए माइनस के निशान(-) का इस्तेमाल करें नीचे दिए गए फ़्रेमवर्क के मुताबिक होगा:

      • GoogleRidesharingDriver.xcframework
    2. अपने Xcode प्रोजेक्ट की टॉप लेवल डायरेक्ट्री से, GoogleRidesharingDriver बंडल.

    CocoaPods

    CocoaPods का इस्तेमाल करके ड्राइवर SDK टूल को कॉन्फ़िगर करने के लिए, आपको इन आइटम की ज़रूरत होगी:

    • CocoaPods टूल: इस टूल को इंस्टॉल करने के लिए, Terminal खोलें और आदेश दिखाई देगा.
       sudo gem install cocoapods
    
    1. ड्राइवर SDK टूल के लिए एक Podfile बनाएं और एपीआई को इंस्टॉल करने के लिए इसका इस्तेमाल करें और इसकी डिपेंडेंसी: अपनी प्रोजेक्ट डायरेक्ट्री में Podfile नाम की एक फ़ाइल बनाएं. यह फ़ाइल आपके प्रोजेक्ट की डिपेंडेंसी के बारे में बताती है. Podfile में बदलाव करें और जोड़ें आपकी डिपेंडेंसी. यहां डिपेंडेंसी का एक उदाहरण दिया गया है:

      source "https://github.com/CocoaPods/Specs.git"
      
      target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
        pod 'GoogleRidesharingDriver'
      end
      

      यहां एक उदाहरण दिया गया है, जिसमें डिपेंडेंसी के तौर पर ड्राइवर SDK टूल:

      source "https://cpdc-eap.googlesource.com/ridesharing-driver-sdk.git"
      source "https://github.com/CocoaPods/Specs.git"
      
      target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
        pod 'GoogleRidesharingDriver'
      end
      
    2. Podfile को सेव करें. टर्मिनल खोलें और उस डायरेक्ट्री पर जाएं जिसमें पॉडफ़ाइल:

      cd <path-to-project>
      
    3. पॉड इंस्टॉल करने का निर्देश चलाएं. इससे साथ ही, Podfile भी शामिल करें.

      pod install
      
    4. Xcode बंद करें और अपने प्रोजेक्ट के .xcworkspace को खोलें (दो बार क्लिक करें) Xcode लॉन्च करने के लिए फ़ाइल होती है. अब से आपको GA4 का इस्तेमाल करना होगा .xcworkspace फ़ाइल होगी.

    CocoaPods का इस्तेमाल शुरू करने के बारे में जानें ज़्यादा जानकारी के लिए, गाइड विवरण.

    मैन्युअल तरीके से इंस्टॉल करना

    XCFramework एक बाइनरी पैकेज होता है जिसका इस्तेमाल आप ड्राइवर SDK टूल. इस पैकेज को कई ईमेल पतों पर इस्तेमाल किया जा सकता है इनमें Apple का इस्तेमाल करने वाली मशीनें शामिल हैं सिलिकॉन. इस गाइड में, मैन्युअल रूप से जोड़ने के बाद अपने प्रोजेक्ट के लिए ड्राइवर SDK टूल बनाएं और अपने बिल्ड को कॉन्फ़िगर करें Xcode की सेटिंग में बदलाव करना होगा.

    SDK टूल बाइनरी और संसाधन डाउनलोड करें:

    1. XCFramework और संसाधनों को ऐक्सेस करने के लिए, फ़ाइलों को निकालें.

    2. Xcode शुरू करें और कोई मौजूदा प्रोजेक्ट खोलें या नया प्रोजेक्ट बनाएं प्रोजेक्ट. अगर आपने iOS का इस्तेमाल पहले नहीं किया है, तो नया प्रोजेक्ट बनाएं और iOS चुनें ऐप्लिकेशन टेम्प्लेट.

    3. अगर आपके प्रोजेक्ट ग्रुप में फ़्रेमवर्क मौजूद नहीं है, तो अपने प्रोजेक्ट ग्रुप में एक फ़्रेमवर्क ग्रुप बनाएं पहले से मौजूद है.

    4. ड्राइवर SDK टूल इंस्टॉल करने के लिए, GoogleRidesharingDriver.xcframework फ़ाइल को फ़्रेमवर्क, लाइब्रेरी, और एम्बेड किया गया कॉन्टेंट. जब कहा जाए, तब चुनें अगर ज़रूरी हो, तो आइटम कॉपी करें.

    5. डाउनलोड किए गए GoogleRidesharingDriver.bundle को सबसे ऊपर के लेवल में खींचें और छोड़ें डायरेक्ट्री में जोड़ा जा सकता है. जब कहा जाए, तब Copy items if needed चुनें.

    6. Project Navigator से प्रोजेक्ट चुनें और का लक्ष्य तय करना.

    7. बिल्ड के चरण खोलें और बाइनरी को लाइब्रेरी से लिंक करें. इसके बाद, नीचे दिए गए फ़्रेमवर्क और लाइब्रेरी का इस्तेमाल करें, अगर वे पहले से मौजूद नहीं हैं:

      • Accelerate.framework
      • AudioToolbox.framework
      • AVFoundation.framework
      • CoreData.framework
      • CoreGraphics.framework
      • CoreLocation.framework
      • CoreTelephony.framework
      • CoreText.framework
      • GLKit.framework
      • ImageIO.framework
      • libc++.tbd
      • libxml2.tbd
      • libz.tbd
      • LocalAuthentication.framework
      • OpenGLES.framework
      • QuartzCore.framework
      • SystemConfiguration.framework
      • UIKit.framework
      • WebKit.framework
    8. किसी खास टारगेट के बजाय, अपना प्रोजेक्ट चुनें और बिल्ड खोलें सेटिंग टैब पर क्लिक करें. अन्य लिंकर फ़्लैग सेक्शन में, इसके लिए -ObjC जोड़ें डीबग और रिलीज़, दोनों के लिए. अगर ये सेटिंग नहीं दिखती हैं, तो इनमें बदलाव करें 'बिल्ड सेटिंग' बार में बुनियादी से सभी तक फ़िल्टर करें.

    Apple की निजता मेनिफ़ेस्ट फ़ाइल की जांच करें

    Apple को App Store पर मौजूद ऐप्लिकेशन के लिए, ऐप्लिकेशन की निजता से जुड़ी जानकारी की ज़रूरत होती है. अपडेट और ज़्यादा जानकारी के लिए, Apple App Store के निजता से जुड़ी जानकारी वाले पेज पर जाएं.

    Apple Privacy मेनिफ़ेस्ट फ़ाइल, SDK टूल के लिए संसाधनों के बंडल में शामिल होती है. यह पुष्टि करने के लिए कि निजता मेनिफ़ेस्ट फ़ाइल शामिल की गई है और इसके कॉन्टेंट की जांच करने के लिए, अपने ऐप्लिकेशन का संग्रह बनाएं और संग्रह से निजता रिपोर्ट जनरेट करें.

    अनुमति देने और पुष्टि करने की प्रोसेस लागू करें

    जब आपका ड्राइवर ऐप्लिकेशन, Fleet Engine बैकएंड को अपडेट जनरेट करके भेजता है, तो अनुरोध में मान्य ऐक्सेस टोकन शामिल होने चाहिए. अधिकृत करने और इन अनुरोधों की पुष्टि करने के बाद, ड्राइवर SDK टूल आपके ऑब्जेक्ट GMTDAuthorization के मुताबिक है प्रोटोकॉल का इस्तेमाल करना चाहिए. ऑब्जेक्ट, ज़रूरी ऐक्सेस टोकन देने के लिए ज़िम्मेदार है.

    ऐप्लिकेशन डेवलपर के तौर पर, आपको यह चुनना होता है कि टोकन कैसे जनरेट किए जाएं. लागू किया गया के तहत ये काम किए जा सकते हैं:

    • किसी एचटीटीपीएस सर्वर से ऐक्सेस टोकन फ़ेच करें. इस टोकन को JSON फ़ॉर्मैट में फ़ेच किया जा सकता है.
    • टोकन को पार्स और कैश मेमोरी में सेव करें.
    • टोकन की समयसीमा खत्म होने पर उसे रीफ़्रेश करें.

    फ़्लीट इंजन सर्वर से मिलने वाले टोकन की जानकारी के लिए, देखें अनुमति पाने के लिए JSON वेब टोकन (JWT) बनाना.

    प्रोवाइडर आईडी और Google Cloud प्रोजेक्ट आईडी एक ही होते हैं. Fleet Engine Deliveryies API की उपयोगकर्ता गाइड देखें हमारा वीडियो देखें.

    यहां दिए गए उदाहरण में, ऐक्सेस टोकन देने वाली कंपनी के बारे में बताया गया है:

    #import "SampleAccessTokenProvider.h"
    #import <GoogleRidesharingDriver/GoogleRidesharingDriver.h>
    
    // SampleAccessTokenProvider.h
    @interface SampleAccessTokenProvider : NSObject<GMTDAuthorization>
    @end
    
    static NSString *const PROVIDER_URL = @"INSERT_YOUR_TOKEN_PROVIDER_URL";
    
    // SampleAccessTokenProvider.m
    @implementation SampleAccessTokenProvider{
      // The cached vehicle token.
      NSString *_cachedVehicleToken;
      // Keep track of the vehicle ID the cached token is for.
      NSString *_lastKnownVehicleID;
      // Keep track of when tokens expire for caching.
      NSTimeInterval _tokenExpiration;
    }
    
    - (void)fetchTokenWithContext:(nullable GMTDAuthorizationContext *)authorizationContext
                       completion:(nonnull GMTDAuthTokenFetchCompletionHandler)completion {
      if (!completion) {
        NSAssert(NO, @"%s encountered an unexpected nil completion.", __PRETTY_FUNCTION__);
        return;
      }
    
      // Get the vehicle ID from the authorizationContext. This is set by the Driver SDK.
      NSString *vehicleID = authorizationContext.vehicleID;
      if (!vehicleID) {
        NSAssert(NO, @"Vehicle ID is missing from authorizationContext.");
        return;
      }
    
    // Clear cached vehicle token if vehicle ID has changed.
      if (![_lastKnownVehicleID isEqual:vehicleID]) {
        _tokenExpiration = 0.0;
        _cachedVehicleToken = nil;
      }
      _lastKnownVehicleID = vehicleID;
    
      // Clear cached vehicle token if it has expired.
      if ([[NSDate date] timeIntervalSince1970] > _tokenExpiration) {
        _cachedVehicleToken = nil;
      }
    
      // If appropriate, use the cached token.
      if (_cachedVehicleToken) {
        completion(_cachedVehicleToken, nil);
        return;
      }
      // Otherwise, try to fetch a new token from your server.
      NSURL *requestURL = [NSURL URLWithString:PROVIDER_URL];
      NSMutableURLRequest *request = 
                              [[NSMutableURLRequest alloc] initWithURL:requestURL];
      request.HTTPMethod = @"GET";
      // Replace the following key values with the appropriate keys based on your
      // server's expected response.
      NSString *vehicleTokenKey = @"VEHICLE_TOKEN_KEY";
      NSString *tokenExpirationKey = @"TOKEN_EXPIRATION";
      __weak typeof(self) weakSelf = self;
      void (^handler)(NSData *_Nullable data, NSURLResponse *_Nullable response,
                      NSError *_Nullable error) =
          ^(NSData *_Nullable data, NSURLResponse *_Nullable response, NSError *_Nullable error) {
            typeof(self) strongSelf = weakSelf;
            if (error) {
              completion(nil, error);
              return;
            }
    
            NSError *JSONError;
            NSMutableDictionary *JSONResponse =
                [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&JSONError];
    
            if (JSONError) {
              completion(nil, JSONError);
              return;
            } else {
              // Sample code only. No validation logic.
              id expirationData = JSONResponse[tokenExpirationKey];
              if ([expirationData isKindOfClass:[NSNumber class]]) {
                NSTimeInterval expirationTime = ((NSNumber *)expirationData).doubleValue;
                strongSelf->_tokenExpiration = [[NSDate date] timeIntervalSince1970] + expirationTime;
              }
              strongSelf->_cachedVehicleToken = JSONResponse[vehicleTokenKey];
              completion(JSONResponse[vehicleTokenKey], nil);
            }
        };
    NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
    NSURLSession *mainQueueURLSession =  
           [NSURLSession  sessionWithConfiguration:config delegate:nil
    delegateQueue:[NSOperationQueue mainQueue]];
    NSURLSessionDataTask *task = [mainQueueURLSession dataTaskWithRequest:request completionHandler:handler];
    [task resume];
    }
    
    @end
    

    DeliveryDriverAPI इंस्टेंस बनाएं

    GMTDDeliveryVehicleReporter इंस्टेंस पाने के लिए, आपको पहले providerID, vehicleID, का इस्तेमाल करके GMTDDeliveryDriverAPI इंस्टेंस driverContext, और accessTokenProvider. providerID और Google Cloud प्रोजेक्ट आईडी. साथ ही, GMTDDeliveryVehicleReporter को ऐक्सेस किया जा सकता है सीधे ड्राइवर एपीआई से इंस्टेंस.

    नीचे दिए गए उदाहरण में, GMTDDeliveryDriverAPI इंस्टेंस बनाया गया है:

    #import "SampleViewController.h"
    #import "SampleAccessTokenProvider.h"
    #import <GoogleRidesharingDriver/GoogleRidesharingDriver.h>
    
    static NSString *const PROVIDER_ID = @"INSERT_YOUR_PROVIDER_ID";
    
    @implementation SampleViewController {
     GMSMapView *_mapView;
    }
    
    - (void)viewDidLoad {
      NSString *vehicleID = @"INSERT_CREATED_VEHICLE_ID";
      SampleAccessTokenProvider *accessTokenProvider = 
                                    [[SampleAccessTokenProvider alloc] init];
      GMTDDriverContext *driverContext = 
         [[GMTDDriverContext alloc] initWithAccessTokenProvider:accessTokenProvider
                                                     providerID:PROVIDER_ID 
                                                  vehicleID:vehicleID 
          navigator:_mapView.navigator];
    
      GMTDDeliveryDriverAPI *deliveryDriverAPI = [[GMTDDeliveryDriverAPI alloc] initWithDriverContext:driverContext];
    }
    

    वाहन के बारे में जानकारी देने वाली सुविधा के इवेंट भी सुनें

    GMTDDeliveryVehicleReporter समय-समय पर वाहन को तब अपडेट करता है, जब locationTrackingEnabled का जवाब हां है. इन समय-समय पर होने वाले अपडेट का जवाब देने के लिए, किसी भी समय ऑब्जेक्ट, GMTDDeliveryVehicleReporter इवेंट की सदस्यता ले सकता है. इसके लिए, वह GMTDVehicleReporterListener प्रोटोकॉल का.

    आपके पास इन इवेंट को मैनेज करने का विकल्प होता है:

    • vehicleReporter:didSucceedVehicleUpdate

      इससे ड्राइवर ऐप्लिकेशन को यह सूचना मिलती है कि बैकएंड सेवाओं को गाड़ी की जगह और स्थिति की जानकारी अपडेट करें.

    • vehicleReporter:didFailVehicleUpdate:withError

      लिसनर को सूचना दी जाती है कि गाड़ी को अपडेट नहीं किया जा सका. जगह के तौर पर ट्रैकिंग चालू है, तो GMTDDeliveryVehicleReporter फ़्लीट इंजन बैकएंड का नया डेटा.

    नीचे दिए गए उदाहरण में, इन इवेंट को हैंडल किया गया है:

    SampleViewController.h
    @interface SampleViewController : UIViewController<GMTDVehicleReporterListener>
    @end
    
    SampleViewController.m
    #import "SampleViewController.h"
    #import "SampleAccessTokenProvider.h"
    #import <GoogleRidesharingDriver/GoogleRidesharingDriver.h>
    
    static NSString *const PROVIDER_ID = @"INSERT_YOUR_PROVIDER_ID";
    
    @implementation SampleViewController {
     GMSMapView *_mapView;
    }
    
    - (void)viewDidLoad {
      // ASSUMES YOU IMPLEMENTED HAVE THE SAMPLE CODE UP TO THIS STEP.
      [ridesharingDriverAPI.vehicleReporter addListener:self];
    }
    
    - (void)vehicleReporter:(GMTDDeliveryVehicleReporter *)vehicleReporter didSucceedVehicleUpdate:(GMTDVehicleUpdate *)vehicleUpdate {
      // Handle update succeeded.
    }
    
    - (void)vehicleReporter:(GMTDDeliveryVehicleReporter *)vehicleReporter didFailVehicleUpdate:(GMTDVehicleUpdate *)vehicleUpdate withError:(NSError *)error {
      // Handle update failed.
    }
    
    @end
    

    जगह की जानकारी ट्रैक करने की सुविधा चालू करें

    जगह की जानकारी ट्रैक करने की सुविधा चालू करने के लिए, आपका ऐप्लिकेशन locationTrackingEnabled को YES पर सेट कर सकता है GMTDDeliveryVehicleReporter को. इसके बाद, GMTDDeliveryVehicleReporter चुकाएं अपने आप स्थान अपडेट भेजता है. जब GMSNavigator नेविगेशन में हो मोड (जब डेस्टिनेशन setDestinations के ज़रिए सेट किया गया हो) और locationTrackingEnabled को YES और GMTDDeliveryVehicleReporter पर सेट किया गया है रास्ते की जानकारी और ETA के अपडेट भी अपने-आप भेजता है.

    इन अपडेट के दौरान सेट किया गया रास्ता वही है जो ड्राइवर के पास होता है पर नेविगेट करना चाहिए. इससे, जहाज़ों को ट्रैक करने की सुविधा काम करती है, -setDestinations:callback: से होकर गुज़रने वाला वेपॉइंट डेस्टिनेशन को फ़्लीट इंजन बैकएंड में सेट किया गया है.

    यहां दिए गए उदाहरण में, जगह की जानकारी ट्रैक करने की सुविधा चालू की गई है:

    SampleViewController.m
    #import "SampleViewController.h"
    #import "SampleAccessTokenProvider.h"
    #import <GoogleRidesharingDriver/GoogleRidesharingDriver.h>
    
    static NSString *const PROVIDER_ID = @"INSERT_YOUR_PROVIDER_ID";
    
    @implementation SampleViewController {
     GMSMapView *_mapView; 
    }
    
    - (void)viewDidLoad {
      // ASSUMES YOU IMPLEMENTED HAVE THE SAMPLE CODE UP TO THIS STEP.
      deliveryDriverAPI.vehicleReporter.locationTrackingEnabled = YES;
    }
    
    @end
    

    डिफ़ॉल्ट रूप से, रिपोर्टिंग अंतराल 10 सेकंड का होता है, लेकिन रिपोर्टिंग अंतराल locationUpdateInterval के साथ बदला जाएगा. अपडेट करने के लिए, तय इंटरवल का कम से कम इस्तेमाल 5 सेकंड का है. अपडेट के लिए ज़्यादा से ज़्यादा 60 सेकंड का इंटरवल इस्तेमाल किया जा सकता है. ज़्यादा बार अपडेट की वजह से, अनुरोध धीमे हो सकते हैं और गड़बड़ियां हो सकती हैं.

    जगह की जानकारी के अपडेट बंद करें और वाहन को ऑफ़लाइन ले जाएं

    आपका ऐप्लिकेशन, वाहन की जगह की जानकारी अपडेट करने की सुविधा बंद कर सकता है. उदाहरण के लिए, जब किसी ड्राइवर की शिफ़्ट खत्म हो रही है, आपका ऐप्लिकेशन locationTrackingEnabled को NO पर सेट कर सकता है.

      _vehicleReporter.locationTrackingEnabled = NO