হোম/গাইডসমূহ/ডেভেলপাররা
ডেভেলপাররা

বাস্তব সময়ে সাইকেল উপলব্ধতা: কীভাবে একটি অ্যাপে প্রদর্শন করবেন?

ROOTE API দিয়ে সাইকেলের উপস্থিতি দেখান: টাইমস্ট্যাম্প, সতেজতা, অজানা মান, রিফ্রেশ এবং মেয়াদোত্তীর্ণ তথ্য আপনার অ্যাপে।

By ROOTE·৭ মিনিট পড়ার সময়
বাস্তব সময়ে সাইকেল উপলব্ধতা: কীভাবে একটি অ্যাপে প্রদর্শন করবেন?
একটি পর্যবেক্ষিত উপলব্ধতা, তার প্রসঙ্গে।

সংক্ষিপ্ত এক নজরে

উপলব্ধ পরিমাণ তার সতেজতা, সময়মুদ্রণ এবং সাইকেল নেওয়ার শর্তাবলী সহ উপস্থাপন করুন। একটি অজানা মান অজানা থেকে যায়; একটি পুরনো পর্যবেক্ষণ বাস্তব সময়ে পরিণত হয় না কারণ আপনার অ্যাপ এটি সদ্য প্রাপ্ত।

বাস্তব সময়ে সাইকেল উপলব্ধতা একটি অ্যাপে দেখাতে, ফেরত আসা সংখ্যাটি তার সতেজতা এবং যানবাহন গ্রহণের সম্ভাবনার সাথে যুক্ত করুন। একটি পর্যবেক্ষণ একটি মুহূর্তে উৎস যা জানত তা বর্ণনা করে; এটি নিশ্চিত করে না যে পৌঁছানোর সময়ও সাইকেল থাকবে।

ROOTE মোবিলিটি চুক্তি স্টেশন, পৃথক যানবাহন এবং তাদের অবস্থা আলাদা করে। ইন্টারফেসটি এই পার্থক্যগুলো অনুবাদ করতে হবে, অজানা মান, খালি স্টেশন এবং সাময়িকভাবে অনুপলব্ধ উৎসের মধ্যে বিভ্রান্তি না করে।

একটি স্টেশন এবং পৃথক যানবাহন আলাদা করা

একটি স্টেশন সাইকেল এবং ফিরতি স্থান কাউন্টার দেখাতে পারে। একটি পৃথক যানবাহনের একটি উপলব্ধতার অবস্থা এবং অন্যান্য প্রাসঙ্গিক তথ্য থাকে। একটি স্টেশনকে সাইকেল হিসেব না করার চেষ্টা করুন বা একই স্টক প্রতিনিধিত্বকারী কাউন্টারগুলো যোগ করবেন না।

ROOTE মোবিলিটি DTO তে, availability.bikes এবং availability.docks অজানা থাকতে পারে। প্রপালশান বা ব্যাটারি ক্ষেত্রগুলি কেবল তখনই প্রদর্শন করা উচিত যখন সেগুলি থাকে এবং চুক্তি অনুযায়ী ব্যাখ্যা করা হয়।

ROOTE OpenAPI চুক্তি

সতেজতা এবং সময়মুদ্রণ পড়া

ক্ষেত্রব্যাখ্যা
freshness.stateঘোষিত অবস্থা: fresh, stale, unknown অথবা static
freshness.source_updated_atউৎসের আপডেট তারিখ, যদি জানা থাকে
freshness.received_atচুক্তি দ্বারা নির্দেশিত গ্রহণের তারিখ
freshness.expires_atবৈধতার মেয়াদ শেষ হওয়ার তারিখ, যদি জানা থাকে
availability.bikesপরিচিত পরিমাণ বা অজানা মান
pickup.enabled এবং pickup.stateস্টেশনে সাইকেল গ্রহণের তথ্য

আপনার কল সময় স্বয়ংক্রিয়ভাবে পর্যবেক্ষণের সময় নয়। ১০ টায় প্রাপ্ত ফলাফল ৯:৪৫ টায় আপডেট উৎস থাকতে পারে। কেবল আপনার ইন্টারফেসের গ্রহণ সময় থেকে 'এখন আপডেট হয়েছে' দেখাবেন না।

বিভিন্ন প্রদর্শন অবস্থা পরিকল্পনা করুন

প্রাপ্ত তথ্যপ্রদর্শনের জন্য পরিকল্পনা
পরিচিত পরিমাণ এবং সতেজ তথ্যপর্যবেক্ষিত পরিমাণ ও সময় সম্পর্কিত ইঙ্গিত
পরিমাণ শূন্যকোন সাইকেল পর্যবেক্ষিত হয়নি, তার সময় প্রসঙ্গ সহ
পরিমাণ nullঅপরিচিত উপলব্ধতা
stale অবস্থা বা মেয়াদোত্তীর্ণপুরানো তথ্য; নবায়নের প্রস্তাব দিন
pickup.enabled=falseগ্রহণ অনুপলব্ধ যদিও কাউন্টার ধনাত্মক
অন্বেষণ ত্রুটিঅস্থায়ীভাবে উপলব্ধতা অনুপলব্ধ, শূন্য এ রূপান্তর না করে

unknown বা static অবস্থা সতেজ হিসেবে গণ্য করবেন না। স্টেশনের তথ্য স্থির হতে পারে যখন কাউন্টার দ্রুত পরিবর্তিত হয়। প্রতিক্রিয়ায় প্রয়োজনীয় সতর্কতা ও অধিকার বজায় রাখুন।

প্রদর্শনের আগে স্বাভাবিকীকরণের একটি উদাহরণ

নিম্নলিখিত ফাংশন ROOTE স্কিমার বিপরীতে ইতিমধ্যেই যাচাই করা স্টেশন থেকে প্রদর্শন অবস্থা তৈরি করে। এটি একটি সম্পূর্ণ প্রতিক্রিয়া যাচাইকরণকারী নয়। দৃশ্যমান লেবেল আপনার ইন্টারফেসের অনুবাদ কী থেকে আসা উচিত।

function availabilityView(station, now = Date.now()) {
  const freshness = station.freshness;
  const expiresAt = freshness.expires_at
    ? Date.parse(freshness.expires_at) : null;
  const expired = expiresAt !== null &&
    Number.isFinite(expiresAt) && expiresAt <= now;
  if (station.pickup.enabled === false ||
      station.pickup.state === 'unavailable_now') {
    return { state: 'pickup_unavailable', count: null };
  }
  if (expired || freshness.state === 'stale') {
    return { state: 'stale', count: null };
  }
  const count = station.availability.bikes;
  if (freshness.state !== 'fresh' || count === null ||
      !Number.isFinite(count) || count < 0) {
    return { state: 'unknown', count: null };
  }
  return {
    state: count === 0 ? 'empty' : 'observed', count,
    sourceUpdatedAt: freshness.source_updated_at,
    receivedAt: freshness.received_at,
    pickupState: station.pickup.state
  };
}

observed অবস্থায়ও pickupState=unknown কে নিশ্চিত গ্রহণে রূপান্তর করবেন না। কাউন্টার হলো একটি পর্যবেক্ষণ। আপনার পণ্য যদি ব্যবহারকারীকে স্টেশন বেছে নিতে সাহায্য করে, তবে গ্রহণ প্রসঙ্গ দেখান।

অপ্রয়োজনীয়ভাবে পুনরায় কল না করে রিফ্রেশ করুন

প্রকাশিত মেয়াদোত্তীর্ণকরণ, সেবা শর্ত এবং ব্যবহারকারীর আচরণের সাথে রিফ্রেশতা সামঞ্জস্য করুন। একই অনুরোধসমূহ একত্রিত করুন, নিষ্ক্রিয় পৃষ্ঠায় পেছনের পটভূমিতে কল এড়িয়ে চলুন এবং প্রতিস্থাপিত অনুসন্ধানের কল বাতিল করুন।

একটি স্থানীয় ক্যাশ বিলম্ব উৎসের সতেজতা প্রমাণ করে না। একটি ত্রুটির পরে আপনি শেষ তারিখযুক্ত পর্যবেক্ষণ ধরে রাখতে পারেন যদি আপনার ইন্টারফেস স্পষ্টভাবে একটি পুরানো হিসাবে প্রদর্শন করে। প্রথম সফল পুনরুদ্ধারে যদি উৎস এখনো stale থাকে, এই পার্থক্য মুছবেন না।

GBFS এর সাথে সম্পর্ক বোঝা

GBFS ভাগ করা মোবিলিটি সেবা এবং প্রকাশিত তাদের অবস্থার বর্ণনা দেয়। সরাসরি সংযুক্তি ফাইল, সংস্করণ এবং ফিডের সময়মুদ্রণগুলি ব্যাখ্যা করা উচিত। একটি স্বীকৃত API সাহায্যে, API চুক্তি ব্যবহার করুন; GBFS এর একটি ক্ষেত্র যোগ করবেন না যা তার প্রতিক্রিয়ায় নেই।

GTFS, GTFS Realtime এবং GBFS এর মধ্যে নির্বাচন

পাঠককে বিভ্রান্ত করার পরিস্থিতি পরীক্ষা করা

একটি আসল শূন্য, একটি অজানা মান, মেয়াদোত্তীর্ণ, গ্রহণ নিষ্ক্রিয় এবং একটি বৈধ ফলাফলের পরে ত্রুটি পরীক্ষা করুন। প্রদর্শনের সময়সীমাও যাচাই করুন। একটি ধনাত্মক কাউন্টার কখনও 'সাইকেল সংরক্ষিত' দিবে না এবং অনুপলব্ধতা কখনও কাল্পনিক শূন্য তৈরি করবে না।

শূন্য উত্তর ও ত্রুটি পরিচালনা

একটি AI সহকারী এ নিয়ম প্রয়োগ

সাইকেল খুঁজে পাওয়ার জন্য ব্যবহারকারী গাইড

ডেভেলপারদের জন্যROOTE মোবিলিটি এপিআই

একটি স্থানের আশেপাশের চলাচল।
আপনার অ্যাপেই সরাসরি।

  • অনুসন্ধান করুন
    একটি অবস্থানের আশেপাশে
  • এক্সেস করুন
    মোবিলিটি ডেটা
  • একটি অ্যাপে অন্তর্ভুক্ত করুন
    আপনার অ্যাপ্লিকেশনে

মানচিত্র থেকে ডেটাতে যান: ROOTE API দিয়ে আশেপাশের চলাচল এবং সেবা অনুসন্ধান করুন।

প্রায়শই জিজ্ঞাসিত প্রশ্ন

একটি ধনাত্মক পরিমাণ কি আমার আগমনে সাইকেল নিশ্চয়তা দেয়?

না। এটি একটি পর্যবেক্ষণ বর্ণনা করে, যা অনুসন্ধান এবং আপনার আগমনের মধ্যে পরিবর্তিত হতে পারে।

null কে শূন্য দ্বারা প্রতিস্থাপন করা যাবে?

না। null মানে অজানা; শূন্য হলো পরিচিত পরিমাণ এবং অন্য অর্থ বহন করে।

প্রতিনিয়ত কয়েক সেকেন্ড পর রিফ্রেশ করা উচিত?

বৈধতা নির্দেশনা, সেবার সীমা ও আপনার ইন্টারফেসের চাহিদা অনুসারে ব্যবহার করুন। আকস্মিক ফ্রিকোয়েন্সি উৎসকে আরো সতেজ করে না।

আপনি কি আশেপাশে দেখবেন?

ROOTE দিয়ে আপনার এলাকাটি অনুসন্ধান করুন এবং চলাচলের তথ্য প্রস্তুত করুন।

ROOTE মানচিত্র পরীক্ষা করুন ↗