Aracı hazırlayın

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

Sırada ne var?

Gezi ayrıntılarını ayarlama