Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Настройка прослушивателей
После инициализации Driver SDK и создания экземпляра GMTDDeliveryDriverAPI вы можете настроить прослушиватели событий для отслеживания успешности или сбоя обновлений данных об автомобиле, отправляемых в Fleet Engine и ваш бэкенд. Эти прослушиватели могут активировать действия в вашем приложении для водителей, например, уведомлять водителя о сбоях связи с вашим бэкендом.
Следите за событиями обновления транспортного средства
Когда водитель включает обновления местоположения в приложении, Driver SDK регулярно отправляет обновления данных о транспортном средстве в Fleet Engine и клиентскую систему через класс GMTDDeliveryVehicleReporter . Вы можете настроить приложение на реагирование на события обновления, настроив протокол GMTDVehicleReporterListener .
С помощью GMTDVehicleReporterListener вы можете обрабатывать следующие события:
vehicleReporter:didSucceedVehicleUpdate
Информирует приложение водителя о том, что внутренние службы успешно получили обновление местоположения и состояния транспортного средства.
vehicleReporter:didFailVehicleUpdate:withError
Сообщает слушателю о сбое обновления данных о транспортном средстве. Пока у водителя включены обновления местоположения, класс GMTDDeliveryVehicleReporter продолжает отправлять актуальные данные в Fleet Engine.
В следующем примере показано, как настроить GMTDVehicleReporterListener для обработки этих событий:
Быстрый
importGoogleRidesharingDriverprivateletproviderID="INSERT_YOUR_PROVIDER_ID"classSampleViewController:UIViewController,GMTDVehicleReporterListener{privateletmapView:GMSMapViewoverridefuncviewDidLoad(){// Assumes you have implemented the sample code up to this step.deliveryDriverAPI.vehicleReporter.add(self)}funcvehicleReporter(_vehicleReporter:GMTDDeliveryVehicleReporter,didSucceedvehicleUpdate:GMTDVehicleUpdate){// Handle update succeeded.}funcvehicleReporter(_vehicleReporter:GMTDDeliveryVehicleReporter,didFailvehicleUpdate:GMTDVehicleUpdate,withErrorerror:Error){// Handle update failed.}}
Objective-C
SampleViewController.h@interfaceSampleViewController : UIViewController<GMTDVehicleReporterListener>@endSampleViewController.m#import "SampleViewController.h"#import "SampleAccessTokenProvider.h"#import <GoogleRidesharingDriver/GoogleRidesharingDriver.h>staticNSString*constPROVIDER_ID=@"INSERT_YOUR_PROVIDER_ID";@implementationSampleViewController{GMSMapView*_mapView;}-(void)viewDidLoad{// ASSUMES YOU IMPLEMENTED HAVE THE SAMPLE CODE UP TO THIS STEP.[delivervehicleReporteraddListener:self];}-(void)vehicleReporter:(GMTDDeliveryVehicleReporter*)vehicleReporterdidSucceedVehicleUpdate:(GMTDVehicleUpdate*)vehicleUpdate{// Handle update succeeded.}-(void)vehicleReporter:(GMTDDeliveryVehicleReporter*)vehicleReporterdidFailVehicleUpdate:(GMTDVehicleUpdate*)vehicleUpdatewithError:(NSError*)error{// Handle update failed.}@end
Включить обновления местоположения
Чтобы включить обновления местоположения, в приложении водителя на GMTDDeliveryVehicleReporter установите для locationTrackingEnabled значение YES . После этого класс GMTDDeliveryVehicleReporter автоматически отправит обновления местоположения во Fleet Engine. Кроме того, когда GMSNavigator находится в режиме навигации, то есть когда пункт назначения задан с помощью setDestinations , класс GMTDDeliveryVehicleReporter автоматически отправляет обновления маршрута и ожидаемого времени прибытия.
Driver SDK прокладывает маршрут в соответствии с текущим маршрутом водителя. Для обеспечения точного обновления местоположения укажите путевую точку в -setDestinations:callback: чтобы она соответствовала пункту назначения в Fleet Engine.
В следующем примере показано, как включить обновление местоположения:
Быстрый
importGoogleRidesharingDriverprivateletproviderID="INSERT_YOUR_PROVIDER_ID"classSampleViewController:UIViewController,GMTDVehicleReporterListener{privateletmapView:GMSMapViewoverridefuncviewDidLoad(){// 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>staticNSString*constPROVIDER_ID=@"INSERT_YOUR_PROVIDER_ID";@implementationSampleViewController{GMSMapView*_mapView;}-(void)viewDidLoad{// ASSUMES YOU HAVE IMPLEMENTED THE SAMPLE CODE UP TO THIS STEP.deliveryDriverAPI.vehicleReporter.locationTrackingEnabled=YES;}@end
(Необязательно) Установите интервал обновления
По умолчанию, если для параметра locationTrackingEnabled задано значение YES , Driver SDK отправляет обновления местоположения в Fleet Engine с интервалом 10 секунд. С помощью locationUpdateInterval можно изменить интервал обновления, установив минимальный интервал обновления в 5 секунд или максимальный в 60 секунд. Более частые обновления могут привести к замедлению запросов и возникновению ошибок.
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2025-09-04 UTC."],[[["\u003cp\u003eThe Google Maps Delivery Driver SDK enables you to set up listeners to monitor the success or failure of vehicle updates sent to Fleet Engine and your backend.\u003c/p\u003e\n"],["\u003cp\u003eYou can listen for vehicle update events such as successful updates and failures, and trigger actions within your driver app accordingly.\u003c/p\u003e\n"],["\u003cp\u003eEnable location updates in the driver app to automatically send regular location and state updates to Fleet Engine and the customer backend.\u003c/p\u003e\n"],["\u003cp\u003eYou can optionally adjust the location update interval, with a default of 10 seconds and a range between 5 and 60 seconds.\u003c/p\u003e\n"],["\u003cp\u003eEnsure the waypoint in \u003ccode\u003esetDestinations\u003c/code\u003e matches the destination in Fleet Engine for accurate location updates during navigation.\u003c/p\u003e\n"]]],[],null,["# Get the vehicle ready\n\nSet up listeners\n----------------\n\nAfter initializing the Driver SDK and creating a `GMTDDeliveryDriverAPI`\ninstance, you can set up event listeners to monitor the success or failure of\nvehicle updates sent to Fleet Engine and your backend. These listeners can\ntrigger actions within your driver app, such as notifying the driver if\ncommunication with your backend fails.\n\n### Listen for vehicle update events\n\nWhen the driver enables location updates in the driver app, the Driver SDK sends\nregular vehicle updates to Fleet Engine and the customer backend through the\n`GMTDDeliveryVehicleReporter` class. You can have the app respond to update\nevents by setting up the `GMTDVehicleReporterListener` protocol.\n\nWith `GMTDVehicleReporterListener`, you can handle the following events:\n\n- `vehicleReporter:didSucceedVehicleUpdate`\n\n Informs the Driver app that the backend services successfully received the\n vehicle location and state update.\n- `vehicleReporter:didFailVehicleUpdate:withError`\n\n Informs the listener that a vehicle update failed. As long as the driver has\n location updates enabled, the `GMTDDeliveryVehicleReporter` class continues\n to send the latest data to Fleet Engine.\n\nThe following example shows how to set up `GMTDVehicleReporterListener` to\nhandle these events: \n\n### Swift\n\n import GoogleRidesharingDriver\n\n private let providerID = \"INSERT_YOUR_PROVIDER_ID\"\n\n class SampleViewController: UIViewController, GMTDVehicleReporterListener {\n private let mapView: GMSMapView\n\n override func viewDidLoad() {\n // Assumes you have implemented the sample code up to this step.\n deliveryDriverAPI.vehicleReporter.add(self)\n }\n\n func vehicleReporter(_ vehicleReporter: GMTDDeliveryVehicleReporter, didSucceed vehicleUpdate: GMTDVehicleUpdate) {\n // Handle update succeeded.\n }\n\n func vehicleReporter(_ vehicleReporter: GMTDDeliveryVehicleReporter, didFail vehicleUpdate: GMTDVehicleUpdate, withError error: Error) {\n // Handle update failed.\n }\n }\n\n### Objective-C\n\n SampleViewController.h\n @interface SampleViewController : UIViewController\u003cGMTDVehicleReporterListener\u003e\n @end\n\n SampleViewController.m\n #import \"SampleViewController.h\"\n #import \"SampleAccessTokenProvider.h\"\n #import \u003cGoogleRidesharingDriver/GoogleRidesharingDriver.h\u003e\n\n static NSString *const PROVIDER_ID = @\"INSERT_YOUR_PROVIDER_ID\";\n\n @implementation SampleViewController {\n GMSMapView *_mapView;\n }\n\n - (void)viewDidLoad {\n // ASSUMES YOU IMPLEMENTED HAVE THE SAMPLE CODE UP TO THIS STEP.\n [delivervehicleReporter addListener:self];\n }\n\n - (void)vehicleReporter:(GMTDDeliveryVehicleReporter *)vehicleReporter didSucceedVehicleUpdate:(GMTDVehicleUpdate *)vehicleUpdate {\n // Handle update succeeded.\n }\n\n - (void)vehicleReporter:(GMTDDeliveryVehicleReporter *)vehicleReporter didFailVehicleUpdate:(GMTDVehicleUpdate *)vehicleUpdate withError:(NSError *)error {\n // Handle update failed.\n }\n\n @end\n\nEnable location updates\n-----------------------\n\nTo enable location updates, in the driver app on\n`GMTDDeliveryVehicleReporter`, set `locationTrackingEnabled` to\n`YES`. Then the\n`GMTDDeliveryVehicleReporter` class automatically sends location updates to\nFleet Engine. Additionally, when the `GMSNavigator` is in navigation mode, which\nis when a destination is set through `setDestinations`, the\n`GMTDDeliveryVehicleReporter` class automatically sends route and ETA updates.\n\nThe Driver SDK sets the route to match the driver's current navigation path. To\nensure accurate location updates, set the waypoint in\n`-setDestinations:callback:` to match the destination in Fleet Engine.\n\nThe following example shows how to enable location updates: \n\n### Swift\n\n import GoogleRidesharingDriver\n\n private let providerID = \"INSERT_YOUR_PROVIDER_ID\"\n\n class SampleViewController: UIViewController, GMTDVehicleReporterListener {\n private let mapView: GMSMapView\n\n override func viewDidLoad() {\n // Assumes you have implemented the sample code up to this step.\n deliveryDriverAPI.vehicleReporter.locationTrackingEnabled = true\n }\n }\n\n### Objective-C\n\n SampleViewController.m\n #import \"SampleViewController.h\"\n #import \"SampleAccessTokenProvider.h\"\n #import \u003cGoogleRidesharingDriver/GoogleRidesharingDriver.h\u003e\n\n static NSString *const PROVIDER_ID = @\"INSERT_YOUR_PROVIDER_ID\";\n\n @implementation SampleViewController {\n GMSMapView *_mapView;\n }\n\n - (void)viewDidLoad {\n // ASSUMES YOU HAVE IMPLEMENTED THE SAMPLE CODE UP TO THIS STEP.\n deliveryDriverAPI.vehicleReporter.locationTrackingEnabled = YES;\n }\n\n @end\n\n| **Note:** If the device has not moved since the last location update, the `GMSRoadSnappedLocationProvider` class does not send location updates continuously. For example, if a driver is waiting idle in the car. If you want to send a new location update, and have set `GMTDDeliveryVehicleReporter` as a listener after calling `startUpdatingLocation` on `GMSRoadSnappedLocationProvider`, you need to stop and start `GMSRoadSnappedLocationProvider`.\n\n### (Optional) Set the update interval\n\nBy default, when you set `locationTrackingEnabled` to `YES`, the Driver SDK\nsends location updates to Fleet Engine at a 10-second interval. You can change\nthe update interval with `locationUpdateInterval` to a minimum update interval\nof 5 seconds or a maximum of 60 seconds. More frequent updates may result in\nslower requests and errors."]]