যানবাহন প্রস্তুত করুন

এই বিভাগটি দেখায় কিভাবে ভ্রমণের জন্য গাড়ি প্রস্তুত করা যায়। আপনার ব্যাকএন্ড একটি ট্রিপে যানবাহনের সাথে মিলিত হওয়ার আগে আপনাকে অবশ্যই নিম্নলিখিত পদক্ষেপগুলির প্রতিটি সম্পূর্ণ করতে হবে৷

শ্রোতাদের সেট আপ করুন

ড্রাইভার 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

অবস্থান আপডেট সক্ষম করুন

অবস্থান আপডেট সক্ষম করতে, ড্রাইভার অ্যাপে GMTDVehicleReporterlocationTrackingEnabled 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

এরপর কি

ভ্রমণের বিবরণ সেট করুন