Aracı hazırlayın

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ü, 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üşterinin arka uç hizmetlerini eşleştirip bir geziye atayarak 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 uzunluğunda 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

Sırada ne var?

Gezi ayrıntılarını ayarlama