গাড়ি রেডি করুন

এই বিভাগে কীভাবে ট্রিপের জন্য গাড়ি রেডি করতে হয় তা দেখানো হয়েছে। আপনার ব্যাকএন্ড কোনও ট্রিপের সাথে কোনও গাড়ি ম্যাচ করার আগে আপনাকে নিম্নলিখিত প্রতিটি ধাপ সম্পূর্ণ করতে হবে।

লিসনার সেট-আপ করা

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

এর পরে কী করতে হবে

ট্রিপের বিবরণ সেট করুন