এই বিভাগটি দেখায় কিভাবে ভ্রমণের জন্য গাড়ি প্রস্তুত করা যায়। আপনার ব্যাকএন্ড একটি ট্রিপে যানবাহনের সাথে মিলিত হওয়ার আগে আপনাকে অবশ্যই নিম্নলিখিত পদক্ষেপগুলির প্রতিটি সম্পূর্ণ করতে হবে৷
শ্রোতাদের সেট আপ করুন
ড্রাইভার 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.
}
}
উদ্দেশ্য-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 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()
}
}
}
উদ্দেশ্য-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
ক্লাস স্বয়ংক্রিয়ভাবে ফ্লিট ইঞ্জিনে অবস্থান আপডেট পাঠায়। ফ্লিট ইঞ্জিন এবং গ্রাহক ব্যাকএন্ড পরিষেবাগুলি মিলিত হওয়ার পরে এবং গাড়িটিকে একটি ভ্রমণের জন্য বরাদ্দ করার পরে, GMTDVehicleReporter
ক্লাস স্বয়ংক্রিয়ভাবে রুট আপডেট পাঠায় যখন GMSNavigator
নেভিগেশন মোডে থাকে, যেটি যখন একটি গন্তব্য 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
}
}
উদ্দেশ্য-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 10-সেকেন্ডের ব্যবধানে ফ্লিট ইঞ্জিনে ট্রিপ এবং গাড়ির আপডেট পাঠায়। আপনি 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)
}
}
উদ্দেশ্য-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