این بخش نحوه آماده سازی وسیله نقلیه را برای سفر نشان می دهد. شما باید هر یک از مراحل زیر را قبل از اینکه باطن شما بتواند یک وسیله نقلیه را با یک سفر مطابقت دهد، انجام دهید.
شنوندگان را تنظیم کنید
پس از راهاندازی Driver SDK و ایجاد یک نمونه GMTDRidesharingDriverAPI
، میتوانید شنوندگان رویداد را برای نظارت بر موفقیت یا شکست بهروزرسانیهای خودرو ارسال شده به Fleet Engine و باطن خود تنظیم کنید. این شنوندهها میتوانند اقداماتی را در برنامه درایور شما ایجاد کنند، مانند اطلاع دادن به راننده در صورت عدم موفقیت در ارتباط با باطن شما.
به رویدادهای به روز رسانی خودرو گوش دهید
هنگامی که راننده بهروزرسانیهای مکان را در برنامه راننده فعال میکند، Driver SDK بهروزرسانیهای منظم خودرو را از طریق کلاس GMTDVehicleReporter
به Fleet Engine و پشتیبانی مشتری ارسال میکند. میتوانید با راهاندازی پروتکل GMTDVehicleReporterListener
، برنامه را به رویدادهای بهروزرسانی پاسخ دهید.
با GMTDVehicleReporterListener
، می توانید رویدادهای زیر را مدیریت کنید:
vehicleReporter:didSucceedVehicleUpdate
به برنامه Driver اطلاع می دهد که سرویس های پشتیبان با موفقیت موقعیت خودرو و به روز رسانی وضعیت را دریافت کردند.
vehicleReporter:didFailVehicleUpdate:withError
به شنونده اطلاع می دهد که به روز رسانی خودرو ناموفق است. تا زمانی که راننده بهروزرسانی موقعیت مکانی را فعال کرده باشد، کلاس
GMTDVehicleReporter
به ارسال آخرین دادهها به Fleet Engine ادامه میدهد.
مثالهای زیر نحوه راهاندازی GMTDVehicleReporterListener
را برای مدیریت این رویدادها نشان میدهند:
سویفت
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.
}
}
هدف-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
به به روز رسانی مکان خودرو گوش دهید
Navigation SDK بهروزرسانیهای مکان را از طریق کلاس GMSRoadSnappedLocationProvider
به Driver SDK ارائه میکند. برای دریافت آن بهروزرسانیها، باید GMTDVehicleReporter
را به عنوان شنونده تنظیم کنید.
سویفت
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()
}
}
}
هدف-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
به روز رسانی مکان را فعال کنید
برای فعال کردن بهروزرسانیهای مکان، locationTrackingEnabled
روی true
در GMTDVehicleReporter
در برنامه درایور تنظیم کنید. سپس کلاس GMTDVehicleReporter
به طور خودکار به روز رسانی مکان را به Fleet Engine ارسال می کند. پس از تطبیق موتور ناوگان و خدمات پشتیبان مشتری و اختصاص وسیله نقلیه به یک سفر، کلاس GMTDVehicleReporter
بهروزرسانیهای مسیر را بهطور خودکار هنگامی که GMSNavigator
در حالت ناوبری است ارسال میکند، یعنی زمانی که یک مقصد از طریق setDestinations
تنظیم میشود.
Driver SDK مسیر را طوری تنظیم می کند که با مسیر ناوبری فعلی راننده مطابقت داشته باشد. برای اطمینان از بهروزرسانیهای دقیق مکان، نقطه بین راه را در setDestinations
تنظیم کنید تا با مقصد در Fleet Engine مطابقت داشته باشد.
مثال زیر نحوه فعال کردن بهروزرسانی موقعیت مکانی را نشان میدهد:
سویفت
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
}
}
هدف-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
فاصله به روز رسانی را تنظیم کنید
بهطور پیشفرض، وقتی locationTrackingEnabled
روی true
تنظیم میکنید، Driver SDK بهروزرسانیهای سفر و خودرو را در فاصله زمانی 10 ثانیه به Fleet Engine ارسال میکند. می توانید فاصله به روز رسانی را با locationUpdateInterval
به حداقل فاصله به روز رسانی 5 ثانیه یا حداکثر 60 ثانیه تغییر دهید. بهروزرسانیهای مکرر ممکن است منجر به درخواستها و خطاهای کندتر شود.
وضعیت خودرو را روی حالت آنلاین قرار دهید
پس از فعال کردن بهروزرسانیهای مکان، وضعیت خودرو را روی ONLINE
تنظیم کنید تا وسیله نقلیه برای درخواستهای جستجو در Fleet Engine در دسترس باشد.
مثالهای زیر نشان میدهند که چگونه وضعیت خودرو را روی ONLINE
تنظیم کنید. برای جزئیات، به updateVehicleState
مراجعه کنید.
سویفت
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)
}
}
هدف-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