Bu bölümde, aracı seyahat için nasıl hazırlayacağınız gösterilmektedir. Tamamlamanız gereken arka ucunuzun bir araç ile seyahati eşleştirebilmesi için aşağıdaki adımların her birini uygulayın.
Dinleyicileri ayarlama
Driver SDK'sını başlattıktan ve bir GMTDRidesharingDriverAPI
oluşturduktan sonra
kullanarak, projenizin başarısını veya başarısızlığını izlemek için etkinlik işleyiciler
Fleet Engine'e ve arka ucunuza gönderilen araç güncellemeleri hakkında bilgi edinebilirsiniz. Bu dinleyiciler
Sürücü uygulamanızda, aşağıdaki durumlarda sürücüye bilgi vermek gibi
kurulmayabilir.
Araç güncelleme etkinliklerini dinle
Sürücü, sürücü uygulamasında konum güncellemelerini etkinleştirdiğinde Sürücü SDK'sı
Fleet Engine'e ve müşteriye düzenli olarak araç
GMTDVehicleReporter
sınıfı üzerinden arka uç sağlar. Uygulamanın yanıt vermesini sağlayabilirsiniz
GMTDVehicleReporterListener
protokolünü ayarlayarak etkinlikleri güncelleyin.
GMTDVehicleReporterListener
ile aşağıdaki etkinlikleri yönetebilirsiniz:
vehicleReporter:didSucceedVehicleUpdate
Sürücü uygulamasına, arka uç hizmetlerinin araç konumu ve durumu güncellemesi.
vehicleReporter:didFailVehicleUpdate:withError
Dinleyiciyi bir araç güncellemesinin başarısız olduğu konusunda bilgilendirir. Sürücü de bu süre boyunca konum güncellemeleri etkinleştirildikten sonra
GMTDVehicleReporter
sınıfı ileti göndermeye devam ediyor en son verileri Fleet Engine'e gönderir.
Aşağıdaki örneklerde, GMTDVehicleReporterListener
özelliğinin
şu etkinlikleri işle:
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
Araç konumu güncellemelerini dinleyin
Navigasyon SDK'sı, Sürücü SDK'sına
GMSRoadSnappedLocationProvider
sınıf. Bu güncellemeleri almak için şunları ayarlamanız gerekir:
GMTDVehicleReporter
artış gösteriyor.
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
Konum güncellemelerini etkinleştir
Konum güncellemelerini etkinleştirmek için locationTrackingEnabled
ayarını açık olarak true
yapın
Sürücü uygulamasında GMTDVehicleReporter
. Ardından GMTDVehicleReporter
sınıfı
konum güncellemelerini otomatik olarak Fleet Engine'e gönderir. Filo Motoru ve
müşteri arka uç hizmetlerini eşleştirip bir geziye atadıktan sonra
GMTDVehicleReporter
sınıfı, şu durumlarda rota güncellemelerini otomatik olarak gönderir:
GMSNavigator
navigasyon modundadır. Bu modda bir hedef, üzerinden ayarlanır
setDestinations
.
Sürücü SDK'sı, rotayı sürücünün mevcut navigasyon yoluyla eşleşecek şekilde ayarlar. Alıcı:
doğru konum güncellemeleri sağlamak, eşleştirmek için setDestinations
içinde ara noktayı ayarlayın
Fleet Engine'deki hedef.
Aşağıdaki örnekte, konum güncellemelerinin nasıl etkinleştirileceği gösterilmektedir:
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
Güncelleme aralığını belirleyin
locationTrackingEnabled
değerini true
olarak ayarladığınızda Sürücü SDK'sı varsayılan olarak
Fleet Engine'e 10 saniyelik aralıklarla gezi ve araç güncellemelerini gönderir. Şunları yapabilirsiniz:
locationUpdateInterval
ile güncelleme aralığını minimum güncellemeyle değiştir
5 saniye veya maksimum 60 saniye olabilir. Güncelleme sıklığı arttıkça
daha yavaş istek ve hatalara neden olur.
Araç durumunu online olarak ayarlama
Konum güncellemelerini etkinleştirdikten sonra aracın durumunu ONLINE
olarak ayarlayıp
Fleet Engine'deki arama sorguları için kullanılabilen araç
Aşağıdaki örneklerde, araç durumunun ONLINE
olarak nasıl ayarlanacağı gösterilmektedir. Örneğin,
daha fazla bilgi için updateVehicleState
başlıklı makaleyi inceleyin.
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