এই বিভাগে কীভাবে ট্রিপের জন্য গাড়ি রেডি করতে হয় তা দেখানো হয়েছে। আপনার ব্যাকএন্ড কোনও ট্রিপের সাথে কোনও গাড়ি ম্যাচ করার আগে আপনাকে নিম্নলিখিত প্রতিটি ধাপ সম্পূর্ণ করতে হবে।
লিসনার সেট-আপ করা
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 রুট সেট করে। সঠিক লোকেশন আপডেট নিশ্চিত করতে, 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-এ সেট করলে, 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