Fahrzeug vorbereiten

In diesem Abschnitt wird beschrieben, wie Sie das Fahrzeug für Fahrten vorbereiten. Du musst Folgendes abschließen: jeden der folgenden Schritte ausführen, bevor Ihr Backend ein Fahrzeug einer Fahrt zuordnen kann.

Hörer einrichten

Nach dem Initialisieren des Driver SDK und dem Erstellen eines GMTDRidesharingDriverAPI können Sie Event-Listener einrichten, um den Erfolg oder Misserfolg eines an Fleet Engine und Ihr Backend gesendet. Diese Hörer können Aktionen in Ihrer Fahrer-App auslösen, z. B. eine Benachrichtigung des Fahrers, Kommunikation mit Ihrem Backend schlägt fehl.

Auf Fahrzeug-Update-Ereignisse warten

Wenn der Treiber Standortupdates in der Treiber-App aktiviert, wird das Driver SDK regelmäßig Fahrzeugaktualisierungen an Fleet Engine und den Kunden. Back-End über die Klasse GMTDVehicleReporter. Sie können festlegen, dass die App um Ereignisse zu aktualisieren, indem Sie das GMTDVehicleReporterListener-Protokoll einrichten.

Mit GMTDVehicleReporterListener können Sie die folgenden Ereignisse verarbeiten:

Die folgenden Beispiele zeigen, wie Sie GMTDVehicleReporterListener so einrichten, dass diese Ereignisse zu verarbeiten:

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

Auf Updates des Fahrzeugstandorts warten

Das Navigation SDK stellt Standortupdates für das Driver SDK über die Klasse GMSRoadSnappedLocationProvider. Um diese Aktualisierungen zu erhalten, müssen Sie GMTDVehicleReporter als Zuhörer hoch.

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

Standortaktualisierungen aktivieren

Um Standortaktualisierungen zu aktivieren, stelle locationTrackingEnabled auf true ein. GMTDVehicleReporter in der Fahrer-App. Dann ist die GMTDVehicleReporter-Klasse automatisch Standortaktualisierungen an Fleet Engine. Nach der Fleet Engine und Back-End-Dienste des Kunden abgeglichen und das Fahrzeug einer Fahrt zuweisen, Die Klasse GMTDVehicleReporter sendet automatisch Routenaktualisierungen, wenn die GMSNavigator befindet sich im Navigationsmodus, d. h., wenn ein Ziel über setDestinations

Das Driver SDK legt die Route so fest, dass sie dem aktuellen Navigationspfad des Fahrers entspricht. Bis Korrekte Standortaktualisierungen erhalten; Wegpunkt in setDestinations entsprechend festlegen das Ziel in Fleet Engine.

Das folgende Beispiel zeigt, wie Standortaktualisierungen aktiviert werden:

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

Aktualisierungsintervall festlegen

Wenn Sie locationTrackingEnabled auf true setzen, wird das Driver SDK standardmäßig sendet Fahrt- und Fahrzeugaktualisierungen in Intervallen von 10 Sekunden an die Fleet Engine. Sie können Aktualisierungsintervall mit locationUpdateInterval auf ein Minimum aktualisieren Intervall von 5 oder maximal 60 Sekunden. Häufigere Updates können führen zu langsameren Anfragen und Fehlern.

Fahrzeugstatus auf „online“ setzen

Nachdem du Standortupdates aktiviert hast, setze den Fahrzeugstatus auf ONLINE, um das für Suchanfragen in Fleet Engine verfügbar.

Die folgenden Beispiele zeigen, wie der Fahrzeugstatus auf ONLINE gesetzt wird. Für Weitere Informationen finden Sie unter 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

Nächste Schritte

Reisedetails festlegen