गाड़ी तैयार रखें

इस सेक्शन में, यात्रा के लिए वाहन को तैयार करने का तरीका बताया गया है. आपको पूरा करना होगा आपका बैकएंड वाहन को यात्रा से मैच कराने से पहले, नीचे दिया गया हर चरण पूरा करना होगा.

लिसनर सेट अप करें

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

वाहन के अपडेट से जुड़े इवेंट सुनें

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

GMTDVehicleReporterListener से इन इवेंट को मैनेज किया जा सकता है:

  • vehicleReporter:didSucceedVehicleUpdate

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

  • vehicleReporter:didFailVehicleUpdate:withError

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

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

Swift

import GoogleRidesharingDriver

private let providerID = "INSERT_YOUR_PROVIDER_ID"

class SampleViewController: UIViewController, GMTDVehicleReporterListener {
  private let mapView: GMSMapView

  override func viewDidLoad() {
    // Assumes you have implemented the sample code up to this step.
    ridesharingDriverAPI.vehicleReporter.add(self)
  }

  func vehicleReporter(_ vehicleReporter: GMTDVehicleReporter, didSucceed vehicleUpdate: GMTDVehicleUpdate) {
    // Handle update succeeded.
  }

  func vehicleReporter(_ vehicleReporter: GMTDVehicleReporter, didFail vehicleUpdate: GMTDVehicleUpdate, withError error: Error) {
    // Handle update failed.
  }
}

Objective-C

/**
 *   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 have implemented the sample code up to this step.
  [ridesharingDriverAPI.vehicleReporter addListener:self];
}

- (void)vehicleReporter:(GMTDVehicleReporter *)vehicleReporter didSucceedVehicleUpdate:(GMTDVehicleUpdate *)vehicleUpdate {
  // Handle update succeeded.
}

- (void)vehicleReporter:(GMTDVehicleReporter *)vehicleReporter didFailVehicleUpdate:(GMTDVehicleUpdate *)vehicleUpdate withError:(NSError *)error {
  // Handle update failed.
}

@end

गाड़ी की जगह की जानकारी के अपडेट सुनें

नेविगेशन SDK टूल की मदद से, ड्राइवर SDK टूल की जगह की जानकारी के अपडेट GMSRoadSnappedLocationProvider क्लास. ये अपडेट पाने के लिए, आपको ये अपडेट पाने होंगे GMTDVehicleReporter को आपने सुना है.

Swift

import GoogleRidesharingDriver

private let providerID = "INSERT_YOUR_PROVIDER_ID"

class SampleViewController: UIViewController, GMTDVehicleReporterListener {
  private let mapView: GMSMapView

  override func viewDidLoad() {
    // Assumes you have implemented the sample code up to this step.
    if let roadSnappedLocationProvider = mapView.roadSnappedLocationProvider {
      roadSnappedLocationProvider.add(ridesharingDriverAPI.vehicleReporter)
      roadSnappedLocationProvider.startUpdatingLocation()
    }
  }
}

Objective-C

/**
 *   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 have implemented the sample code up to this step.
  [_mapView.roadSnappedLocationProvider addListener:ridesharingDriverAPI.vehicleReporter];
  [_mapView.roadSnappedLocationProvider startUpdatingLocation];
}

@end

जगह की जानकारी के अपडेट चालू करें

जगह की जानकारी के अपडेट पाने के लिए, locationTrackingEnabled को true पर सेट करें ड्राइवर ऐप्लिकेशन में GMTDVehicleReporter. इसके बाद, GMTDVehicleReporter क्लास Fleet Engine को अपने-आप जगह की जानकारी भेजता है. फ़्लीट इंजन के बाद और ग्राहक बैकएंड सेवा की मदद से, वाहन को यात्रा के लिए असाइन किया जाता है. जब GMTDVehicleReporter GMSNavigator नेविगेशन मोड में है. यह तब होता है, जब कोई डेस्टिनेशन सेट किया जाता है setDestinations.

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

यहां दिए गए उदाहरण में, जगह की जानकारी के अपडेट चालू करने का तरीका बताया गया है:

Swift

import GoogleRidesharingDriver

private let providerID = "INSERT_YOUR_PROVIDER_ID"

class SampleViewController: UIViewController, GMTDVehicleReporterListener {
  private let mapView: GMSMapView

  override func viewDidLoad() {
    // Assumes you have implemented the sample code up to this step.
    ridesharingDriverAPI.vehicleReporter.locationTrackingEnabled = true
  }
}

Objective-C

/**
 *   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 have implemented the sample code up to this step.
  ridesharingDriverAPI.vehicleReporter.locationTrackingEnabled = YES;
}

@end

अपडेट का इंटरवल सेट करना

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

वाहन की स्थिति को ऑनलाइन पर सेट करें

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

नीचे दिए गए उदाहरणों में, वाहन की स्थिति को ONLINE पर सेट करने का तरीका बताया गया है. इसके लिए जानकारी, updateVehicleState देखें.

Swift

import GoogleRidesharingDriver

private let providerID = "INSERT_YOUR_PROVIDER_ID"

class SampleViewController: UIViewController, GMTDVehicleReporterListener {
  private let mapView: GMSMapView

  override func viewDidLoad() {
    // Assumes you have implemented the sample code up to this step.
    ridesharingDriverAPI.vehicleReporter.update(.online)
  }
}

Objective-C

#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 have implemented the sample code up to this step.
  [ridesharingDriverAPI.vehicleReporter
                                   updateVehicleState:GMTDVehicleStateOnline];
}

@end

आगे क्या करना है

यात्रा की जानकारी सेट करना