차량 준비

리스너 설정

드라이버 SDK를 초기화하고 GMTDDeliveryDriverAPI를 만든 후 인스턴스의 성공 또는 실패를 모니터링하도록 이벤트 리스너를 설정할 수 있습니다. 차량 업데이트가 Fleet Engine과 백엔드로 전송됩니다. 이러한 리스너는 작업을 실행할 수 있습니다. 통신할 수 없습니다

차량 업데이트 이벤트 수신 대기

운전자가 드라이버 앱에서 위치 업데이트를 활성화하면 Driver SDK는 정기적으로 업데이트되는 GMTDDeliveryVehicleReporter 클래스. 앱이 업데이트에 응답하도록 설정할 수 있습니다 GMTDVehicleReporterListener 프로토콜을 설정하여 이벤트를 수신할 수 있습니다.

GMTDVehicleReporterListener를 사용하면 다음 이벤트를 처리할 수 있습니다.

  • vehicleReporter:didSucceedVehicleUpdate

    드라이버 앱에 백엔드 서비스가 차량 위치 및 상태 업데이트.

  • vehicleReporter:didFailVehicleUpdate:withError

    리스너에 차량 업데이트 실패를 알립니다. 운전자가 위치 업데이트가 사용 설정된 경우 GMTDDeliveryVehicleReporter 클래스가 계속됩니다. 최신 데이터를 Fleet Engine으로 전송할 수 있습니다

다음 예는 GMTDVehicleReporterListener를 설정하여 다음을 수행하는 방법을 보여줍니다. 다음과 같이 처리합니다.

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.
    deliveryDriverAPI.vehicleReporter.add(self)
  }

  func vehicleReporter(_ vehicleReporter: GMTDDeliveryVehicleReporter, didSucceed vehicleUpdate: GMTDVehicleUpdate) {
    // Handle update succeeded.
  }

  func vehicleReporter(_ vehicleReporter: GMTDDeliveryVehicleReporter, 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 IMPLEMENTED HAVE THE SAMPLE CODE UP TO THIS STEP.
  [delivervehicleReporter addListener:self];
}

- (void)vehicleReporter:(GMTDDeliveryVehicleReporter *)vehicleReporter didSucceedVehicleUpdate:(GMTDVehicleUpdate *)vehicleUpdate {
  // Handle update succeeded.
}

- (void)vehicleReporter:(GMTDDeliveryVehicleReporter *)vehicleReporter didFailVehicleUpdate:(GMTDVehicleUpdate *)vehicleUpdate withError:(NSError *)error {
  // Handle update failed.
}

@end

위치 업데이트 사용 설정

위치 업데이트를 사용 설정하려면 GMTDDeliveryVehicleReporter, locationTrackingEnabled를 다음으로 설정 YES입니다. 그런 다음 GMTDDeliveryVehicleReporter 수업에서 자동으로 위치 업데이트를 전송합니다. 사용할 수 있습니다 또한 GMSNavigator가 탐색 모드일 때 대상이 setDestinations를 통해 설정된 경우입니다. GMTDDeliveryVehicleReporter 클래스는 경로 및 도착예정시간 업데이트를 자동으로 전송합니다.

Driver SDK는 운전자의 현재 내비게이션 경로와 일치하도록 경로를 설정합니다. 받는사람 정확한 위치 업데이트를 위해 경유지를 -setDestinations:callback:: Fleet Engine의 대상과 일치합니다.

다음 예는 위치 업데이트를 사용 설정하는 방법을 보여줍니다.

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.
    deliveryDriverAPI.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.
  deliveryDriverAPI.vehicleReporter.locationTrackingEnabled = YES;
}

@end

(선택사항) 업데이트 간격 설정

기본적으로 locationTrackingEnabledYES로 설정하면 Driver SDK가 10초 간격으로 Fleet Engine에 위치 업데이트를 전송합니다. 변경할 수 있습니다. locationUpdateInterval의 업데이트 간격을 최소 업데이트 간격으로 지정할 수 있습니다 더 자주 업데이트하면 요청할 수 있습니다