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