এই বিভাগে, ট্রিপের জন্য কীভাবে গাড়ি প্রস্তুত করতে হয় তা দেখানো হয়েছে। আপনার ব্যাকএন্ড কোনও ট্রিপের সাথে কোনও গাড়ি ম্যাচ করার আগে আপনাকে অবশ্যই নিম্নলিখিত প্রতিটি ধাপ সম্পূর্ণ করতে হবে।
লিসনার সেট-আপ করুন
Driver SDK শুরু করা এবং GMTDRidesharingDriverAPI
ইনস্ট্যান্স তৈরি করার পরে, আপনি ফ্লিট ইঞ্জিন এবং আপনার ব্যাকএন্ডে পাঠানো গাড়ির আপডেটের সাফল্য বা ব্যর্থতা নিরীক্ষণ করতে ইভেন্ট শ্রোতাদের সেট আপ করতে পারেন। এইসব লিসেনার আপনার ড্রাইভার অ্যাপের মধ্যে অ্যাকশন ট্রিগার করতে পারে, যেমন আপনার ব্যাকএন্ডের সাথে যোগাযোগ ব্যর্থ হলে ড্রাইভারকে জানানো।
গাড়ির আপডেট ইভেন্ট শুনুন
ড্রাইভার অ্যাপে ড্রাইভার লোকেশন আপডেট চালু করলে, Driver SDK
GMTDVehicleReporter ক্লাসের মাধ্যমে Fleet Engine ও গ্রাহকের
ব্যাকএন্ডে নিয়মিত গাড়ির আপডেট পাঠায়। আপনি GMTDVehicleReporterListener প্রোটোকল সেট-আপ করে
ইভেন্ট আপডেট করার জন্য অ্যাপকে রেসপন্স করতে দিতে পারেন।
GMTDVehicleReporterListener-এর মাধ্যমে আপনি নিম্নলিখিত ইভেন্টগুলি ম্যানেজ করতে পারবেন:
vehicleReporter:didSucceedVehicleUpdateড্রাইভার অ্যাপকে জানায় যে ব্যাকএন্ড পরিষেবা সফলভাবে গাড়ির লোকেশন ও স্ট্যাটাস আপডেট পেয়েছে।
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
গাড়ির লোকেশন আপডেট শুনুন
Navigation SDK,
GMSRoadSnappedLocationProvider ক্লাসের মাধ্যমে Driver SDK-কে লোকেশন আপডেট প্রদান করে। এইসব আপডেট পেতে, আপনাকে অবশ্যই
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
লোকেশন সম্পর্কিত আপডেট চালু করুন
লোকেশন আপডেট চালু করতে, ড্রাইভার অ্যাপে GMTDVehicleReporter-এ locationTrackingEnabled-কে true-এ সেট করুন। তারপর GMTDVehicleReporter ক্লাস
অটোমেটিক Fleet Engine-এ লোকেশন আপডেট পাঠায়। Fleet Engine এবং
গ্রাহকের ব্যাকএন্ড পরিষেবা মিলে গিয়ে কোনও ট্রিপের জন্য গাড়ি অ্যাসাইন করার পরে,
GMTDVehicleReporter ক্লাস অটোমেটিক রুটের আপডেট পাঠায় যখন
GMSNavigator নেভিগেশন মোডে থাকে, অর্থাৎ যখন
setDestinations-এর মাধ্যমে গন্তব্য সেট করা থাকে।
ড্রাইভারের বর্তমান নেভিগেশন পাথের সাথে ম্যাচ করার জন্য Driver SDK রুট সেট করে। সঠিক লোকেশন আপডেট নিশ্চিত করতে, Fleet Engine-এ গন্তব্যের সাথে ম্যাচ করার জন্য setDestinations-এ ওয়েপয়েন্ট সেট করুন।
লোকেশন আপডেট কীভাবে চালু করতে হয় তা নিম্নলিখিত উদাহরণ থেকে দেখুন:
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-এ সেট করলে, Driver SDK
১০ সেকেন্ডের ব্যবধানে Fleet Engine-এ ট্রিপ ও গাড়ি সংক্রান্ত আপডেট পাঠায়। আপনি
locationUpdateInterval-এর মাধ্যমে আপডেট ইন্টারভ্যাল পরিবর্তন করে ন্যূনতম ৫ সেকেন্ড বা সর্বাধিক ৬০ সেকেন্ডের
আপডেট ইন্টারভ্যাল সেট করতে পারবেন। আরও ঘন ঘন আপডেট করলে
অনুরোধের প্রসেস স্লো হয়ে যেতে পারে এবং সমস্যা হতে পারে।
গাড়ির স্ট্যাটাস 'অনলাইন' হিসেবে সেট করুন
লোকেশন আপডেট চালু করার পরে, Fleet Engine-এ সার্চ কোয়েরির জন্য গাড়ি উপলভ্য করতে, গাড়ির স্ট্যাটাস ONLINE-এ সেট করুন।
গাড়ির স্ট্যাটাস কীভাবে 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