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

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

ড্রাইভার SDK আরম্ভ করার পরে এবং একটি GMTDDeliveryDriverAPI ইনস্ট্যান্স তৈরি করার পরে, আপনি ফ্লিট ইঞ্জিন এবং আপনার ব্যাকএন্ডে প্রেরিত যানবাহন আপডেটের সাফল্য বা ব্যর্থতা পর্যবেক্ষণ করার জন্য ইভেন্ট লিসেনার্স সেট আপ করতে পারেন। এই লিসেনার্স আপনার ড্রাইভার অ্যাপের মধ্যে অ্যাকশন ট্রিগার করতে পারে, যেমন আপনার ব্যাকএন্ডের সাথে যোগাযোগ ব্যর্থ হলে ড্রাইভারকে অবহিত করা।

গাড়ির আপডেট ইভেন্টগুলি শুনুন

যখন ড্রাইভার অ্যাপে লোকেশন আপডেট সক্ষম করে, তখন ড্রাইভার SDK GMTDDeliveryVehicleReporter ক্লাসের মাধ্যমে Fleet Engine এবং গ্রাহক ব্যাকএন্ডে নিয়মিত যানবাহন আপডেট পাঠায়। আপনি GMTDVehicleReporterListener প্রোটোকল সেট আপ করে অ্যাপটিকে আপডেট ইভেন্টগুলিতে প্রতিক্রিয়া জানাতে পারেন।

GMTDVehicleReporterListener দিয়ে, আপনি নিম্নলিখিত ইভেন্টগুলি পরিচালনা করতে পারেন:

  • vehicleReporter:didSucceedVehicleUpdate

    ড্রাইভার অ্যাপকে জানায় যে ব্যাকএন্ড পরিষেবাগুলি গাড়ির অবস্থান এবং অবস্থা আপডেট সফলভাবে পেয়েছে।

  • vehicleReporter:didFailVehicleUpdate:withError

    শ্রোতাকে জানায় যে একটি গাড়ির আপডেট ব্যর্থ হয়েছে। যতক্ষণ পর্যন্ত ড্রাইভারের অবস্থান আপডেট সক্ষম থাকে, ততক্ষণ পর্যন্ত GMTDDeliveryVehicleReporter ক্লাস 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.
    deliveryDriverAPI.vehicleReporter.add(self)
  }

  func vehicleReporter(_ vehicleReporter: GMTDDeliveryVehicleReporter, didSucceed vehicleUpdate: GMTDVehicleUpdate) {
    // Handle update succeeded.
  }

  func vehicleReporter(_ vehicleReporter: GMTDDeliveryVehicleReporter, 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 IMPLEMENTED HAVE THE SAMPLE CODE UP TO THIS STEP.
  [delivervehicleReporter addListener:self];
}

- (void)vehicleReporter:(GMTDDeliveryVehicleReporter *)vehicleReporter didSucceedVehicleUpdate:(GMTDVehicleUpdate *)vehicleUpdate {
  // Handle update succeeded.
}

- (void)vehicleReporter:(GMTDDeliveryVehicleReporter *)vehicleReporter didFailVehicleUpdate:(GMTDVehicleUpdate *)vehicleUpdate withError:(NSError *)error {
  // Handle update failed.
}

@end

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

লোকেশন আপডেট সক্রিয় করতে, GMTDDeliveryVehicleReporter ড্রাইভার অ্যাপে locationTrackingEnabled কে YES এ সেট করুন। তারপর GMTDDeliveryVehicleReporter ক্লাস স্বয়ংক্রিয়ভাবে Fleet Engine এ লোকেশন আপডেট পাঠায়। অতিরিক্তভাবে, যখন GMSNavigator নেভিগেশন মোডে থাকে, অর্থাৎ যখন setDestinations মাধ্যমে একটি গন্তব্য সেট করা হয়, তখন GMTDDeliveryVehicleReporter ক্লাস স্বয়ংক্রিয়ভাবে রুট এবং ETA আপডেট পাঠায়।

ড্রাইভার SDK ড্রাইভারের বর্তমান নেভিগেশন পাথের সাথে মিলে রুট সেট করে। সঠিক অবস্থান আপডেট নিশ্চিত করতে, Fleet Engine-এর গন্তব্যের সাথে মিলে -setDestinations:callback: এ ওয়েপয়েন্ট সেট করুন।

নিচের উদাহরণে লোকেশন আপডেট কীভাবে সক্ষম করবেন তা দেখানো হয়েছে:

সুইফট

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.
    deliveryDriverAPI.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.
  deliveryDriverAPI.vehicleReporter.locationTrackingEnabled = YES;
}

@end

(ঐচ্ছিক) আপডেট ব্যবধান সেট করুন

ডিফল্টরূপে, যখন আপনি locationTrackingEnabled কে YES এ সেট করেন, তখন Driver SDK 10 সেকেন্ডের ব্যবধানে Fleet Engine-এ অবস্থান আপডেট পাঠায়। আপনি locationUpdateInterval দিয়ে আপডেট ব্যবধানটি সর্বনিম্ন 5 সেকেন্ড বা সর্বোচ্চ 60 সেকেন্ডের আপডেট ব্যবধানে পরিবর্তন করতে পারেন। আরও ঘন ঘন আপডেটের ফলে ধীরগতির অনুরোধ এবং ত্রুটি দেখা দিতে পারে।