যখন আপনি আপনার ট্রিপের ডেটা সংগ্রহ করেন , তখন আপনার ব্যাকএন্ড ড্রাইভারের ট্রিপের অগ্রগতির বিবরণসহ JSON পেলোড গ্রহণ করে। ট্রিপটি নিরীক্ষণ করতে, আপনার ডিসপ্যাচ সিস্টেম আপডেট করতে এবং ট্রিপের অগ্রগতির সময় বা ট্রিপ শেষ হলে ড্রাইভারের পরবর্তী পদক্ষেপ নির্ধারণের জন্য বর্তমান ট্রিপের অবস্থা ব্যাখ্যা করতে এই পেলোডগুলো পার্স করুন।
ডেটা পেলোড পড়ুন
ড্রাইভার যখন নেভিগেট করা শুরু করেন, পথ চলার সময় নির্দিষ্ট বিরতিতে (ডিফল্টরূপে প্রতি ৬০ সেকেন্ডে), এবং গন্তব্যে পৌঁছালে, গুগল ম্যাপস বা ওয়েজ ট্রিপ ডেটা পেলোডগুলো নেভিগেশন কানেক্ট সার্ভারে পাঠায়। প্রতিটি JSON মেসেজে প্রাসঙ্গিক ট্রিপ ডেটা থাকে, যার মধ্যে ড্রাইভারের তোলা রাস্তার স্থানাঙ্ক, অতিক্রান্ত দূরত্ব এবং পৌঁছানোর আনুমানিক সময় (ETA) অন্তর্ভুক্ত।
নিম্নলিখিত কোড নমুনাটি দেখায় যে, একজন চালক যখন কিংস ক্রস থেকে সেন্ট্রাল সেন্ট জাইলস পর্যন্ত ভ্রমণের জন্য নেভিগেশন শুরু করেন, তখন ট্রিপ ডেটা পেলোডটি কেমন হয়।
{
"name": "projects/123456/trips/221B9CD6-4146-4CBF-9556-853817654938",
"state": "ENROUTE",
"execution": {
"origin": {
"point": {
"latitude": 51.5333329,
"longitude": -0.1265845
}
},
"destination": {
"point": {
"latitude": 51.515598,
"longitude": -0.1277623
}
},
"location": {
"point": {
"latitude": 51.5333329,
"longitude": -0.1265845
},
"sourceTime": "2025-05-30T12:37:26Z",
"serverTime": "2025-05-30T12:37:26.221069Z"
},
"traveledDuration": "0s",
"remainingDuration": "990s",
"traveledDistanceMeters": 0,
"remainingDistanceMeters": 2879,
"stopAddedInRoute": false
}
}
সক্রিয় ট্রিপের অবস্থা নিরীক্ষণ করুন
সফলভাবে শুরু হয়েছে কিনা তা নিশ্চিত করতে এবং অগ্রগতি পর্যবেক্ষণ করতে, প্রতিটি পেলোডের স্ট্যাটাস ফিল্ডটি মূল্যায়ন করুন।
| অবস্থা | বর্ণনা |
|---|---|
NEW | ট্রিপটি তৈরি করা হয়েছে, কিন্তু চালক এখনো পথ দেখানো শুরু করেননি। |
ENROUTE | চালক সক্রিয়ভাবে গন্তব্যের দিকে গাড়ি চালাচ্ছেন। ট্রিপটি যে সফলভাবে যাচাই ও শুরু হয়েছে, তা নিশ্চিত করতে এই স্ট্যাটাসটি ব্যবহার করুন। |
হ্যান্ডেল যোগ করা স্টপ
ড্রাইভাররা নেভিগেশনের সময় তাদের রুটে স্টপ যোগ করতে পারেন। যদি তারা তা করেন, তাহলে নেভিগেশন কানেক্ট JSON ডেটা পেলোডে execution.stopAddedInRoute ফিল্ডটিকে true সেট করে দেয়। নেভিগেশন কানেক্ট এপিআই ড্রাইভারকে তার মূল গন্তব্যের দিকে ট্র্যাক করতে থাকে। যোগ করা স্টপগুলো অন্তর্ভুক্ত করার জন্য আনুমানিক পৌঁছানোর সময় (ETA), দূরত্ব এবং সময়কালের মতো মেট্রিকগুলো বেড়ে যায়।
স্টপ যোগ করার পদ্ধতিটি নেভিগেশন অ্যাপের ওপর নির্ভর করে এবং এর সাধারণ কার্যকারিতার সাথে সামঞ্জস্যপূর্ণ হয়:
- গুগল ম্যাপস: চালকরা তাদের রুটে একাধিক স্টপ যোগ করতে পারেন।
- Waze: চালকরা কেবল একটি স্টপ যোগ করতে পারেন। যদি কোনো চালক আরেকটি স্টপ যোগ করার চেষ্টা করেন, তাহলে Waze বর্তমান রুটে স্টপটি যোগ না করে, তাদের একটি নতুন নেভিগেশন সেশন শুরু করতে বলে।
এই ফিচারটি সমর্থন করার জন্য আপনার ব্যাকএন্ড ইনপুটগুলো পরিবর্তন করার প্রয়োজন নেই।
প্রমাণীকরণ এবং স্টার্ট সংক্রান্ত সমস্যা সমাধান করুন
আপনি যদি ENROUTE স্ট্যাটাস না পান, তাহলে সম্ভবত একটি অথেনটিকেশন ত্রুটি ঘটেছে। এর সাধারণ কারণগুলোর মধ্যে রয়েছে API প্যারামিটারের ভুল বানান অথবা মেয়াদোত্তীর্ণ ট্রিপ টোকেন। আপনার প্রাথমিক CreateTrip রেসপন্সে টোকেনের মেয়াদ শেষ হওয়ার সময়টি যাচাই করুন।
যদি স্ট্যাটাস NEW থেকে ENROUTE এ পরিবর্তিত না হয়, তাহলে ড্রাইভারের ডিভাইসটি অথেনটিকেশনে বাধা দিতে পারে। এই ধরনের ক্ষেত্রে নেভিগেশন কানেক্ট কোনো এরর মেসেজ পাঠায় না। নিম্নলিখিত বিষয়গুলো যাচাই করুন:
- ড্রাইভারের সিস্টেমে Waze ভার্সন 5.15.5 বা তার উচ্চতর সংস্করণ, অথবা Google Maps ভার্সন 26.14 বা তার উচ্চতর সংস্করণ ইনস্টল করা আছে।
- চালক অ্যান্ড্রয়েড অটো বা অ্যাপল কারপ্লে ব্যবহার করছেন না।
- ড্রাইভারের একটি সক্রিয় ইন্টারনেট সংযোগ আছে।
অবশিষ্ট রুটের ডেটা পরিচালনা করুন (শুধুমাত্র Waze-এর জন্য)
ট্রিপ তৈরির সময় আপনি যদি অবশিষ্ট রুট রিপোর্টিং চালু করে থাকেন, তাহলে আপনার ব্যাকএন্ড ড্রাইভারের বর্তমান অবস্থান থেকে তার চূড়ান্ত গন্তব্য পর্যন্ত সক্রিয় রুট পলিলাইন এবং রিয়েল-টাইম ট্র্যাফিকের অবস্থা গ্রহণ করে।
আপনি আপনার অ্যাপ্লিকেশনের বিভিন্ন বৈশিষ্ট্যকে শক্তিশালী করতে এই ডেটা গ্রহণ ও প্রক্রিয়াকরণ করতে পারেন, যার মধ্যে নিম্নলিখিত উদাহরণগুলো অন্তর্ভুক্ত:
- শক্তিশালী লাইভ ট্র্যাকিং ম্যাপ : চালকের যাত্রাপথ সম্পর্কে স্বচ্ছতা প্রদানের জন্য গ্রাহক-মুখী ওয়েব বা মোবাইল ম্যাপে অবশিষ্ট পথের পলিলাইনটি রেন্ডার করুন।
- আনুমানিক আগমনের সময়ের (ETA) নির্ভুলতা বাড়ান : অভ্যন্তরীণ লজিস্টিকস বা ডেলিভারির আগমনের পূর্বাভাস উন্নত করতে রোড-স্ন্যাপ করা পলিলাইন এবং ট্র্যাফিক ইন্টারভ্যাল স্পিড একত্রিত করুন।
- রুট নির্ধারণের নিয়ম মেনে চলা বিশ্লেষণ করুন : চালকের নিয়ম মেনে চলার বিষয়টি মূল্যায়ন করতে অবশিষ্ট রুটের জ্যামিতিকে প্রত্যাশিত প্রেরণ রুটের সাথে তুলনা করুন।
আপনি GetTrip অনুরোধ পাঠান বা Google Cloud Pub/Sub ব্যবহার করে ইভেন্ট-চালিত আপডেট গ্রহণ করুন না কেন, Navigation Connect ` execution.remainingRoute ফিল্ডে অবশিষ্ট রুটের বিবরণ ফেরত দেয়। তবে, পেলোড কীভাবে এই ডেটা ফরম্যাট ও গঠন করে, তা আপনার ব্যবহৃত পুনরুদ্ধার পদ্ধতির উপর নির্ভর করে।
GetTrip পদ্ধতি
আপনি যখন GetTrip মেথডটি কল করেন, তখন পলিলাইনের রেসপন্স ফরম্যাটটি আপনার রিকোয়েস্টে নির্দিষ্ট করা routePolylineFormat প্যারামিটারের উপর নির্ভর করে। আরও তথ্যের জন্য, পলিলাইন ফরম্যাট কাস্টমাইজ করুন (Customize polyline formats ) দেখুন।
সকল পলিলাইন ফরম্যাটের জন্য, নেভিগেশন কানেক্ট ` execution.remainingRoute.trafficInformation ফিল্ডে SpeedReadingInterval অবজেক্টের একটি পৃথক তালিকা হিসেবে ট্র্যাফিক ফেরত দেয়। এই অবজেক্টগুলো নিম্নলিখিত মান ব্যবহার করে ট্র্যাফিক ক্যাটাগরিগুলোকে পলিলাইন ইনডেক্সের সাথে ম্যাপ করে:
-
startPolylinePointIndex: পলিলাইনের উপর ট্র্যাফিক ব্যবধানের শুরুর সূচক। -
endPolylinePointIndex: ট্র্যাফিক ব্যবধানের শেষ সূচক। -
speed: এই অংশের ট্র্যাফিকের শ্রেণীবিভাগ:NORMAL,SLOW, অথবাTRAFFIC_JAM।
গুগল ক্লাউড পাব/সাব আপডেট
আপনি যখন পাব/সাব (Pub/Sub) ব্যবহার করে ট্রিপ ডেটা পুনরুদ্ধার করেন , তখন আপডেটগুলি সর্বদা execution.remainingRoute ফিল্ডে একটি সমন্বিত GeoJSON FeatureCollection এ অবশিষ্ট রুটের ডেটা ফেরত দেয়।
এই ফরম্যাটটি সরাসরি পলিলাইন জ্যামিতিকে ট্র্যাফিকের গতির সাথে সংযুক্ত করে, ফলে ম্যানুয়ালি ইনডেক্স ম্যাপ করার প্রয়োজন হয় না।
পাব/সাব পেলোডের একটি উদাহরণ দেখুন
নিম্নলিখিত কোড নমুনাটি একটি পাব/সাব বার্তার updatedTrip অবজেক্টের execution.remainingRoute ফিল্ডে ফেরত আসা GeoJSON কাঠামোটি দেখায়:
{ "type": "FeatureCollection", "features": [ { "type": "Feature", "geometry": { "type": "LineString", "coordinates": [ [-122.3934, 37.7955], [-122.4010, 37.7980] ] }, "properties": { "speed": "SLOW" } }, { "type": "Feature", "geometry": { "type": "LineString", "coordinates": [ [-122.4010, 37.7980], [-122.4058, 37.8025], [-122.4187, 37.8021] ] }, "properties": { "speed": "NORMAL" } } ] }
পেলোড আকার অপ্টিমাইজ করুন
যেহেতু কোঅর্ডিনেট অ্যারেগুলো বড় হয়, তাই আপনার পাব/সাব মেসেজগুলোতে অবশিষ্ট রাউট ডেটা অন্তর্ভুক্ত করলে পেলোডের আকার উল্লেখযোগ্যভাবে বেড়ে যেতে পারে (প্রতি মেসেজে ১৩-১৪ কিলোবাইট পর্যন্ত)। আপনি যদি ঘন ঘন আপডেট পান, তবে এই বিপুল পরিমাণ ডেটা ব্যাকএন্ড প্রসেসিং লোড এবং ব্যবহারের খরচ বাড়িয়ে দিতে পারে।
আপনার স্ট্রিমকে অপ্টিমাইজ করতে, ট্রিপ তৈরির সময় ভারী ফিল্ডগুলি বাদ দেওয়ার জন্য আপনার TripConfig অবজেক্টে pubsubFieldMask প্যারামিটারটি ব্যবহার করুন। বিস্তারিত জানার জন্য, ঐচ্ছিক কনফিগারেশন দেখুন।
ভ্রমণের শেষ অবস্থাগুলি পরিচালনা করুন
যখন একজন ড্রাইভার গন্তব্যে পৌঁছায় বা নেভিগেট করা বন্ধ করে, তখন পেলোডটি নিম্নলিখিত শেষ অবস্থাগুলোর মধ্যে একটি ফেরত দেয়। আপনার অ্যাপে উপযুক্ত পরবর্তী পদক্ষেপগুলো চালু করতে এই স্ট্যাটাসগুলো ব্যবহার করুন।
| অবস্থা | বর্ণনা | সুপারিশকৃত পদক্ষেপ |
|---|---|---|
ARRIVED | চালক গন্তব্যে পৌঁছালেন। | অবশিষ্ট দূরত্ব মিটার remainingDistanceMeters পরীক্ষা করুন। যদি চালক কাছাকাছি কোথাও গাড়ি পার্ক করে থাকেন কিন্তু সঠিক স্থানাঙ্কে না করে থাকেন, তাহলে আপনার অ্যাপে হেঁটে যাওয়ার দিকনির্দেশনা দেওয়ার কথা বিবেচনা করুন। |
SUSPENDED | গন্তব্যে পৌঁছানোর আগেই চালক নিজে থেকেই টার্ন-বাই-টার্ন নেভিগেশন থেকে বেরিয়ে এসেছিলেন। যেহেতু গুগল ম্যাপস বা ওয়েজ সেশন শেষ হওয়ার আগেই বেরিয়ে গেলে চালকদের স্বয়ংক্রিয়ভাবে আপনার অ্যাপে ফিরিয়ে আনে না, তাই চালককে ম্যানুয়ালি রিটার্ন বোতামটি ট্যাপ করতে হয়। | চালকদের যাত্রা সম্পূর্ণ করতে সাহায্য করার জন্য, গন্তব্যের সাথে execution.location তুলনা করুন। যদি দূরত্ব বাকি থাকে, তাহলে যাত্রা পুনরায় শুরু করতে বা হাঁটা মোডে (walking mode) যাওয়ার জন্য একটি বাটন বা লিঙ্ক দিন। |
FAILED | একটি প্রযুক্তিগত ত্রুটির কারণে সংযোগ বিচ্ছিন্ন হয়েছে। অ্যাপটি কোনো পথ নির্ণয় করতে না পারলে অথবা কোনো নিরাপত্তা সতর্কতা দেখা দিলে এমনটা ঘটে। চালক হয়তো তখনও পথ দেখাচ্ছেন, কিন্তু আপনি কোনো আপডেট পাবেন না। | আপনার অ্যাপে ম্যানুয়াল স্ট্যাটাস ট্র্যাকিং ব্যবস্থায় ফিরে যান। |
CLIENT_ERROR | নিম্নলিখিত কারণগুলির মধ্যে কোনো একটির জন্য এই অবস্থাটি দেখা যায়:
| আপনার অ্যাপে ম্যানুয়াল স্ট্যাটাস ট্র্যাকিং ব্যবস্থায় ফিরে যান। |