يعرض هذا القسم كيفية تجهيز المركبة للرحلات. يجب إكمال كلّ خطوة من الخطوات التالية قبل أن تتمكّن واجهة الخلفية من مطابقة مركبة مع رحلة.
إعداد المستمعين
بعد بدء حزمة تطوير برامج Driver SDK وإنشاء GMTDRidesharingDriverAPI
مثيل، يمكنك إعداد مستمعي الأحداث لتتبُّع نجاح أو تعذُّر
تعديلات المركبات المُرسَلة إلى Fleet Engine ونظامك الأساسي. يمكن لهؤلاء المستمعين
تنفيذ إجراءات داخل تطبيق السائق، مثل إعلام السائق إذا
فشل التواصل مع الواجهة الخلفية.
رصد أحداث تحديث المركبات
عندما يفعّل السائق تحديثات الموقع الجغرافي في تطبيق السائق، تُرسِل حزمة Driver SDK
تحديثات المركبات العادية إلى Fleet Engine وإلى العميل
في الخلفية من خلال فئة GMTDVehicleReporter
. يمكنك جعل التطبيق يستجيب
لتعديل الأحداث من خلال إعداد بروتوكول GMTDVehicleReporterListener
.
من خلال GMTDVehicleReporterListener
، يمكنك التعامل مع الأحداث التالية:
vehicleReporter:didSucceedVehicleUpdate
إبلاغ تطبيق Driver بأنّ خدمات الخلفية قد تلقّت بنجاح وتحديث موقع المركبة والحالة.
vehicleReporter:didFailVehicleUpdate:withError
تُبلِغ المستمِع بتعذُّر تحديث المركبة. طالما أن السائق لديه تم تفعيل تعديلات الموقع الجغرافي، ويواصل الصف
GMTDVehicleReporter
إرسال أحدث البيانات إلى 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.
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
الاستماع إلى آخر المعلومات عن الموقع الجغرافي للمركبة
توفّر حزمة تطوير البرامج (SDK) لميزة التنقّل إشعارات بشأن الموقع الجغرافي لحزمة تطوير البرامج (SDK) لميزة القيادة من خلال فئة
GMSRoadSnappedLocationProvider
. لتلقي هذه التحديثات، يجب عليك تعيين
GMTDVehicleReporter
كمستمع.
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
تفعيل تعديلات الموقع الجغرافي
لتفعيل تعديلات الموقع الجغرافي، اضبط locationTrackingEnabled
على true
في
GMTDVehicleReporter
في تطبيق "سائق Fleet". بعد ذلك، تُرسِل فئة GMTDVehicleReporter
تعديلات الموقع الجغرافي تلقائيًا إلى Fleet Engine. بعد أن تتطابق خدمات Fleet Engine و
customer backend services وتخصّص المركبة لرحلة، تُرسِل فئة
GMTDVehicleReporter
تعديلات المسار تلقائيًا عندما يكون
GMSNavigator
في وضع التنقّل، أي عند ضبط وجهة من خلال
setDestinations
.
تضبط حزمة Driver SDK المسار ليطابق مسار التنقّل الحالي للسائق. إلى
لضمان إجراء تعديلات دقيقة على الموقع الجغرافي، اضبط النقطة الوسيطة في setDestinations
لتتطابق مع
الوجهة في 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.
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
تحديد الفاصل الزمني للتحديثات
عندما تضبط locationTrackingEnabled
على true
بشكل تلقائي، فإنّ حزمة تطوير البرامج (SDK) لبرنامج التشغيل
يرسل تحديثات الرحلة والمركبة إلى Fleet Engine خلال فاصل مدته 10 ثوانٍ. يمكنك
تغيير الفاصل الزمني للتعديل باستخدام locationUpdateInterval
إلى فاصل زمني أدنى للتعديل
يبلغ 5 ثوانٍ أو 60 ثانية كحد أقصى. قد يتم إجراء تحديثات أكثر تكرارًا
تؤدي إلى إبطاء الطلبات والأخطاء.
ضبط حالة المركبة على "متصل"
بعد تفعيل تعديلات الموقع الجغرافي، اضبط حالة المركبة على ONLINE
لإتاحة التعديلات.
مركبة متاحة لطلبات البحث في Fleet Engine.
توضِّح الأمثلة التالية كيفية ضبط حالة المركبة على ONLINE
. للاطّلاع على
التفاصيل، يُرجى الاطّلاع على updateVehicleState
.
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