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:
vehicleReporter:didSucceedVehicleUpdate
Informiert die Treiber-App, dass die Backend-Dienste den Aktualisierung von Fahrzeugstandort und Fahrzeugstatus.
vehicleReporter:didFailVehicleUpdate:withError
Informiert den Listener, dass ein Fahrzeugupdate fehlgeschlagen ist. Solange der Fahrer aktiviert sind, sendet die Klasse "
GMTDVehicleReporter
" weiterhin die neuesten Daten an Fleet Engine zu übertragen.
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
festlegen, 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
zu langsameren Anfragen und Fehlern führen.
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