রুট ওভারভিউ API

রুট ওভারভিউ API হল একটি লাস্ট মাইল ফ্লিট সলিউশন প্রোডাক্ট যা DriverSDK-তে নির্মিত। এটির সাহায্যে, আপনি একটি প্রদত্ত গাড়ির জন্য রুট তথ্য পুনরুদ্ধার করতে পারেন, হয় এককালীন আনা হিসাবে বা ক্রমাগত আপডেটের জন্য শ্রোতা ব্যবহার করে। রুট ওভারভিউ API নিম্নলিখিত ধরণের তথ্য সমর্থন করে:

  • গাড়ির থামার অবস্থান, ভ্রমণের সময়, দূরত্ব সহ সম্পূর্ণ রুট পরিকল্পনা
  • প্রতিটি স্টপের মধ্যে রুট পলিলাইন পাথ।

এই নথিটি আপনার অ্যাপ্লিকেশনের জন্য API-এর সাথে একীকরণের ধাপগুলি বর্ণনা করে৷

পূর্বশর্ত

  • আপনি DriverSDK v4.1.0 বা উচ্চতরের আলফা চ্যানেল ব্যবহার করে আপনার Android অ্যাপ্লিকেশন চালাচ্ছেন। Maven artifactId-এর জন্য transportation-driver-alpha ব্যবহার করে আলফা চ্যানেল পাওয়া যায়।
  • এপিআই ডেলিভারি এপিআই এর মাধ্যমে ফ্লিট ইঞ্জিন দ্বারা প্রদত্ত রুট তথ্য গ্রহণ করে। এটি হয় DriverSDK ( DeliveryDriverApi ) এ API-এর মাধ্যমে অথবা সরাসরি ফ্লিট ইঞ্জিনে প্রদান করা যেতে পারে।

ইন্টিগ্রেশন পদক্ষেপ

এই বিভাগে API এর সাথে আপনার অ্যান্ড্রয়েড ড্রাইভার অ্যাপকে সংহত করার জন্য প্রয়োজনীয় প্রাথমিক পদক্ষেপগুলি কভার করে৷ এই নির্দেশাবলীতে নিম্নলিখিত অনুমান রয়েছে:

  • আপনার কাছে একটি বিদ্যমান Android অ্যাপ রয়েছে যা ইতিমধ্যেই ড্রাইভার SDK-এর সাথে একত্রিত হয়েছে
  • আপনি আপনার অ্যাপে DeliveryDriverApi একটি প্রসঙ্গ অবজেক্টের সাথে শুরু করেছেন যা আপনি খুঁজে পেতে পারেন

বিস্তারিত জানার জন্য Android এর জন্য ড্রাইভার SDK দিয়ে শুরু করা দেখুন।

ধাপ 0 - রুট সেটআপ

আপনি এই ধাপটি এড়িয়ে যেতে পারেন যদি আপনি ইতিমধ্যেই ফ্লিট ইঞ্জিন সেট আপ করে থাকেন এবং যানবাহন স্টপ এবং ডেলিভারি কাজ তৈরি করতে পারেন।

ফ্লিট ইঞ্জিনে স্টপ এবং টাস্ক তথ্য লোড করতে, আপনার একটি বৈধ রুটে বরাদ্দ করা একটি ডেলিভারি গাড়ির প্রয়োজন৷ কারণ ডাটা আনার জন্য রুট ওভারভিউ API-এর বৈধ রুট প্রয়োজন। বৈধ রুটগুলি ওয়েপয়েন্ট এবং স্টপের একটি সিরিজ নিয়ে গঠিত এবং একটি স্টপ শুধুমাত্র তখনই থাকতে পারে যদি এটির অন্তত একটি সংশ্লিষ্ট কাজ থাকে। আরও তথ্যের জন্য Fleet Engine API ইন্টিগ্রেশন গাইড দেখুন।

ধাপ 1 - এপিআই শুরু করুন

একবার আপনি সংশ্লিষ্ট স্টপ এবং কাজগুলির সাথে একটি বৈধ রুট স্থাপন করলে, আপনি রুট ওভারভিউ API শুরু করতে পারেন। সূচনা ফ্লিট ইঞ্জিন এবং API-এর মধ্যে সংযোগের জন্য প্রয়োজনীয় কাঠামো প্রদান করে। রুট ওভারভিউ API-কে একই প্রসঙ্গ অবজেক্ট দিয়ে আরম্ভ করা উচিত যেটি আপনি DriverSDK-এ DeliveryDriverApi আরম্ভ করার জন্য ব্যবহার করেছিলেন, যেহেতু অবজেক্টটি আপনার DriverContext অবজেক্টে পূর্বে সংজ্ঞায়িত একই গাড়ির আইডিকে নির্দেশ করে। নিম্নলিখিত উদাহরণটি ব্যাখ্যা করে কিভাবে RouteOverviewApi এর একটি উদাহরণ তৈরি করতে হয়।


RouteOverviewApi api = RouteOverviewApi.getInstance();
if (api == null) {
    api = RouteOverviewApi.createInstance(context);
}

ধাপ 2 - রুট পরিবর্তন ইভেন্টের জন্য যানবাহন নিবন্ধন করুন

এখন আপনি API চালু করেছেন, আপনি রুট ওভারভিউ ক্ষমতার সাথে ইন্টারঅ্যাক্ট করতে VehicleRouteOverview অবজেক্ট ব্যবহার করতে পারেন। এটি আপনার অ্যাপ্লিকেশনকে রুট সেটআপের সময় আপনার প্রদত্ত রুট তথ্য ব্যবহার করতে দেয়। ইভেন্ট আপডেট এবং রুট পুনরুদ্ধারের সুবিধার্থে API ইভেন্ট লিসেনার ব্যবহার করুন।

একটি রুট পরিবর্তন ইভেন্ট ঘটে যখনই গাড়ির জন্য নির্ধারিত স্টপের পথ আপডেট করা হয়, একটি স্টপ পুনরায় সাজানো হয়, বা যখন ফ্লিট ইঞ্জিন ETA তথ্য আপডেট করে।


vehicleRouteOverview.addOnRouteChangedEventListener(event -> {
    // handle route update events
});

ধাপ 3 - API সক্ষম করুন

এখন যেহেতু আপনি রুট তথ্য ব্যবহার করতে প্রস্তুত, আপনাকে অবশ্যই API সক্ষম করতে হবে যাতে এটি গাড়ির ইভেন্টগুলিতে প্রতিক্রিয়া জানায়। মনে রাখবেন যে নেটওয়ার্ক ব্যান্ডউইথের অপ্রয়োজনীয় খরচ এড়াতে API একটি অক্ষম অবস্থায় শুরু করা হয়েছে।

vehicleRouteOverview.setRouteOverviewEnabled(true);

আপনি যেকোন সময় এই আপডেটগুলিকে পজ করতে পারেন একই পদ্ধতিতে কল করে false মান দিয়ে।

ধাপ 4 - একটি গুগল ম্যাপে রুট আঁকুন

একবার আপনি RouteToVehicleStop s এর একটি তালিকা পেয়ে গেলে, আপনি এটি আপনার অ্যাপ্লিকেশনে ব্যবহার করতে পারেন৷ উদাহরণস্বরূপ, আপনি একটি Google Map উদাহরণে রুট পলিলাইন পাথ আঁকতে পারেন। নিম্নলিখিত কোড স্নিপেট একটি উদাহরণ দেখায় যা মানচিত্র দৃশ্যে রুট পলিলাইন আঁকে এবং প্রতিটি স্টপ অবস্থানের উপরে মার্কার যোগ করে।

    GoogleMap googleMap = … // Instance of the Map view you are using
    ImmutableList<RouteToVehicleStop> route = event.newRoute();

    PolylineOptions routePolyline = new PolylineOptions().color(Color.BLUE);
    for (RouteToVehicleStop stop : route) {
        routePolyline.addAll(stop.path());

        MarkerOptions marker =
            new MarkerOptions().position(stop.vehicleStop().getWaypoint().getPosition());
        googleMap.addMarker(marker);
    }

    googleMap.addPolyline(routePolyline);
}

স্ক্রিনশট একটি রুট ওভারভিউ চিত্র দেখাচ্ছে

এর ফলে ডানদিকের স্ক্রিনশটের মতো একটি দৃশ্য দেখা যায়:

ধাপ 5 - একটি রুট স্ন্যাপশট পান

আপনি যদি চান যে আপনার অ্যাপটি বর্তমান রুটের তথ্যের একটি স্ন্যাপশট পুনরুদ্ধার করার জন্য একটি এককালীন কল ইস্যু করুক, আপনি সেই ডেটা পুনরুদ্ধার করতে নিম্নলিখিত পদ্ধতিটি ব্যবহার করতে পারেন:

ListenableFuture<ImmutableList<RouteToVehicleStop> future = vehicleRouteOverview.getRouteToVehicleStops();
ImmutableList<RouteToVehicleStop> stops = future.get();

ইভেন্ট শ্রোতাদের মাধ্যমে রুট আপডেটগুলিতে সদস্যতা নেওয়ার পরিবর্তে আপনি এটি করতে পারেন।

ধাপ 6 - পরিষ্কার করুন

যদি আপনার অ্যাপের আর রুট ওভারভিউ কার্যকারিতার প্রয়োজন না হয়, তাহলে আপনার নিশ্চিত হওয়া উচিত যে আপনি পরিষ্কার করেছেন। পরিষ্কার করা আপনার অ্যাপ্লিকেশনে অপ্রয়োজনীয় মেমরি, প্রক্রিয়াকরণ এবং নেটওয়ার্ক খরচ এড়ায়।

একটি নির্দিষ্ট ইভেন্ট শ্রোতা সরান

আপনি একটি ইভেন্ট শ্রোতা অপসারণ করা উচিত যখন একটি নির্দিষ্ট শ্রোতা আর প্রয়োজন হয় না.

vehicleRouteOverview.removeOnRouteChangedEventListener(listener);

সমস্ত ইভেন্ট শ্রোতাদের সাফ করুন

আপনার ক্লিনআপ রুটিনের অংশ হিসাবে আপনি একবারে নিবন্ধিত সমস্ত ভিন্ন ইভেন্ট শ্রোতাদের সরাতে পারেন।

vehicleRouteOverview.clearEventListeners();

রুট ওভারভিউ API উদাহরণ সাফ করুন

যখনই রুট ওভারভিউয়ের আর প্রয়োজন হয় না বা ট্র্যাক করা গাড়ির আইডি পরিবর্তিত হয়, আপনি অভ্যন্তরীণ রেফারেন্সগুলি সাফ করতে এই APIকে কল করতে পারেন।

vehicleRouteOverview.clearInstance();