Bu bölümde, aracın seyahatlere nasıl hazırlanacağı gösterilmektedir. Arka uçunuz bir aracı bir seyahatle eşleştirebilmesi için aşağıdaki adımların her birini tamamlamanız gerekir.
Dinleyicileri ayarlama
Driver SDK'sını ilk kullanıma hazırlayın ve bir GMTDRidesharingDriverAPI
örneği oluşturduktan sonra, Fleet Engine'a ve arka uç sunucunuza gönderilen araç güncellemelerinin başarısını veya başarısızlığını izlemek için etkinlik dinleyicileri ayarlayabilirsiniz. Bu dinleyiciler, sürücü uygulamanızda işlem tetikleyebilir (ör. arka uçla iletişim başarısız olursa sürücüyü bilgilendirme).
Araç güncelleme etkinliklerini dinleme
Sürücü, sürücü uygulamasında konum güncellemelerini etkinleştirdiğinde Sürücü SDK'sı, GMTDVehicleReporter
sınıfı aracılığıyla Fleet Engine'a ve müşteri arka ucuna düzenli araç güncellemeleri gönderir. 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üncellemesini başarıyla aldığını bildirir.
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ç konum güncellemelerini dinleme
Gezinme SDK'sı, GMSRoadSnappedLocationProvider
sınıfı aracılığıyla Sürücü SDK'sına konum güncellemeleri sağlar. Bu güncellemeleri almak için GMTDVehicleReporter
'ü dinleyici olarak ayarlamanız gerekir.
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. Fleet Engine ve müşteri arka uç hizmetleri eşleşip aracı bir seyahate atadıktan sonra GMTDVehicleReporter
sınıfı, GMSNavigator
navigasyon modundayken (setDestinations
üzerinden bir hedef ayarlandığında) rota güncellemelerini otomatik olarak gönderir.
Sürücü SDK'sı, rotayı sürücünün mevcut navigasyon yoluyla eşleşecek şekilde ayarlar. Doğru konum güncellemeleri sağlamak için setDestinations
'teki yol noktasını Fleet Engine'daki hedefle eşleşecek şekilde ayarlayın.
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ı ayarlama
Varsayılan olarak, locationTrackingEnabled
değerini true
olarak ayarladığınızda Sürücü SDK'sı, 10 saniyelik aralıklarla Fleet Engine'a gezi ve araç güncellemeleri gönderir. Şunları yapabilirsiniz:
locationUpdateInterval
ile güncelleme aralığını minimum güncellemeyle değiştir
5 saniye veya maksimum 60 saniye olabilir. Daha sık güncellemeler, isteklerin yavaşlamasına ve hatalara neden olabilir.
Araç durumunu online olarak ayarlama
Konum güncellemelerini etkinleştirdikten sonra, aracı Fleet Engine'da arama sorguları için kullanılabilir hale getirmek üzere araç durumunu ONLINE
olarak ayarlayın.
Aşağıdaki örneklerde, araç durumunun nasıl ONLINE
olarak ayarlanacağı gösterilmektedir. Ayrıntılı 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