এই বিভাগে দেখানো হয়েছে কিভাবে ট্রিপের জন্য গাড়ি প্রস্তুত করতে হয়। আপনার ব্যাকএন্ডটি একটি ট্রিপের সাথে একটি গাড়ি মেলানোর আগে আপনাকে নিম্নলিখিত প্রতিটি ধাপ অবশ্যই সম্পন্ন করতে হবে।
শ্রোতা সেট আপ করুন
ড্রাইভার SDK আরম্ভ করার পর এবং একটি GMTDRidesharingDriverAPI ইনস্ট্যান্স তৈরি করার পর, আপনি ফ্লিট ইঞ্জিন এবং আপনার ব্যাকএন্ডে পাঠানো যানবাহন আপডেটের সাফল্য বা ব্যর্থতা পর্যবেক্ষণ করার জন্য ইভেন্ট লিসেনার্স সেট আপ করতে পারেন। এই লিসেনার্স আপনার ড্রাইভার অ্যাপের মধ্যে অ্যাকশন ট্রিগার করতে পারে, যেমন আপনার ব্যাকএন্ডের সাথে যোগাযোগ ব্যর্থ হলে ড্রাইভারকে অবহিত করা।
গাড়ির আপডেট ইভেন্টগুলি শুনুন
যখন ড্রাইভার অ্যাপে লোকেশন আপডেট সক্ষম করে, তখন ড্রাইভার SDK GMTDVehicleReporter ক্লাসের মাধ্যমে Fleet Engine এবং গ্রাহক ব্যাকএন্ডে নিয়মিত যানবাহন আপডেট পাঠায়। আপনি GMTDVehicleReporterListener প্রোটোকল সেট আপ করে অ্যাপটিকে ইভেন্ট আপডেটের প্রতিক্রিয়া জানাতে পারেন।
GMTDVehicleReporterListener দিয়ে, আপনি নিম্নলিখিত ইভেন্টগুলি পরিচালনা করতে পারেন:
vehicleReporter:didSucceedVehicleUpdateড্রাইভার অ্যাপকে জানায় যে ব্যাকএন্ড পরিষেবাগুলি গাড়ির অবস্থান এবং অবস্থা আপডেট সফলভাবে পেয়েছে।
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.
}
}
অবজেক্টিভ-সি
/**
* 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 GMSRoadSnappedLocationProvider ক্লাসের মাধ্যমে ড্রাইভার 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()
}
}
}
অবজেক্টিভ-সি
/**
* 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 এবং গ্রাহক ব্যাকএন্ড পরিষেবাগুলি মিলে যাওয়ার পরে এবং গাড়িটিকে একটি ট্রিপে বরাদ্দ করার পরে, GMSNavigator নেভিগেশন মোডে থাকাকালীন GMTDVehicleReporter ক্লাস স্বয়ংক্রিয়ভাবে রুট আপডেট পাঠায়, অর্থাৎ যখন setDestinations এর মাধ্যমে একটি গন্তব্য সেট করা হয়।
ড্রাইভার SDK ড্রাইভারের বর্তমান নেভিগেশন পথের সাথে মেলে রুট সেট করে। সঠিক অবস্থান আপডেট নিশ্চিত করতে, ফ্লিট ইঞ্জিনে গন্তব্যের সাথে মেলে setDestinations এ ওয়েপয়েন্ট সেট করুন।
নিচের উদাহরণে লোকেশন আপডেট কীভাবে সক্ষম করবেন তা দেখানো হয়েছে:
সুইফট
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
}
}
অবজেক্টিভ-সি
/**
* 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 সেট করুন।
নিম্নলিখিত উদাহরণগুলি দেখায় কিভাবে গাড়ির অবস্থা 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)
}
}
অবজেক্টিভ-সি
#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