গতিসীমা

Roads API প্রদত্ত রোড সেগমেন্টের জন্য স্পিড লিমিট রিটার্ন করে। পরিবর্তনযোগ্য স্পিড লিমিট সহ রোড সেগমেন্টের ক্ষেত্রে, সেই সেগমেন্টে অটোমোবাইলের জন্য সর্বাধিক স্পিড লিমিট রিটার্ন করা হয়।

Roads API-এর মাধ্যমে পাওয়া স্পিড লিমিট ডেটার নির্ভুলতার গ্যারান্টি দেওয়া যায় না। প্রদান করা স্পিড লিমিট ডেটা রিয়েল-টাইম নয় এবং তা অনুমান করা, ভুল, অসম্পূর্ণ বা পুরনো হতে পারে। কভারেজের বিবরণ দেখে নিন, যাতে কোন কোন অঞ্চলে স্পিড লিমিট ডেটা উপলভ্য তা জানতে পারেন।

অনুরোধ

নিম্নলিখিত ফর্ম্যাটে HTTPS ব্যবহার করে স্পিড লিমিটের জন্য অনুরোধ পাঠান:

https://roads.googleapis.com/v1/speedLimits?parameters&key=YOUR_API_KEY

প্যারামিটারের ব্যবহার

প্রয়োজনীয় প্যারামিটার

  • path অথবা placeId প্যারামিটার।

    • path — ১০০টি পর্যন্ত অক্ষাংশ/দ্রাঘিমাংশের জোড়ার একটি তালিকা যা একটি পাথকে উপস্থাপন করে। অক্ষাংশ ও দ্রাঘিমাংশের মান কমা দিয়ে আলাদা করতে হবে। অক্ষাংশ/দ্রাঘিমাংশ জোড়াকে পাইপ অক্ষর: "|" দিয়ে আলাদা করতে হবে। আপনি path প্যারামিটার প্রদান করলে, API প্রথমে কোনও গাড়ির সবচেয়ে বেশি ভ্রমণ করা রাস্তার সাথে পাথ স্ন্যাপ করে (যেমন এটি snapToRoads অনুরোধের জন্য করে), তারপর প্রাসঙ্গিক রাস্তার অংশের জন্য স্পিড লিমিট নির্ধারণ করে। আপনি যদি না চান যে API পাথ স্ন্যাপ করুক, তাহলে আপনাকে নিচে ব্যাখ্যা করা placeId প্যারামিটার পাস করতে হবে। নিচে দেওয়া উদাহরণে তিনটি অক্ষাংশ/দ্রাঘিমাংশ জোড়া সহ path প্যারামিটার দেখানো হয়েছে: path=60.170880,24.942795|60.170879,24.942796|60.170877,24.942796।
    • placeId — এক বা একাধিক রাস্তার অংশকে উপস্থাপনকারী স্থান আইডি। নিশ্চিত করুন যে প্রতিটি প্লেস আইডি যেন রাস্তার অংশকে বোঝায় এবং অন্য কোনও ধরনের জায়গাকে না বোঝায়। আপনি প্রতিটি অনুরোধের সাথে ১০০টি পর্যন্ত প্লেস আইডি পাস করতে পারবেন। অনুরোধে প্রতিটি স্থান আইডির জন্য উত্তরে একটি স্পিড লিমিট অন্তর্ভুক্ত থাকে।

      API, প্রদান করা জায়গার আইডিতে রোড-স্ন্যাপিং করে না। প্রাসঙ্গিক প্লেস আইডি খুঁজে পেতে, আপনি snapToRoads বা nearestRoads অনুরোধ পাঠাতে পারেন, তারপর সেগুলিকে speedLimits অনুরোধে ইনপুট হিসেবে ব্যবহার করতে পারেন। নিচের উদাহরণে দুটি প্লেস আইডি সহ placeId প্যারামিটার দেখানো হয়েছে: placeId=ChIJs5ydyTiuEmsR0fRSlU0C7k0&placeId=ChIJW__r4ERXzpQRgkeRL6P0m3Y

  • key — আপনার অ্যাপ্লিকেশনের API কী। আপনার অ্যাপ্লিকেশন যখনই Roads API-এ অনুরোধ পাঠাবে, তখনই প্রতিটি অনুরোধের সাথে একটি API কী অন্তর্ভুক্ত করে নিজেকে শনাক্ত করতে হবে। কীভাবে কী পাবেন তা জানুন।

ঐচ্ছিক প্যারামিটার

  • units — স্পিড লিমিট কিলোমিটার নাকি মাইল প্রতি ঘণ্টায় ফেরত পাঠানো হবে। এটি KPH বা MPH হিসেবে সেট করা যেতে পারে। ডিফল্ট হিসেবে KPH সেট করা থাকে।

প্রতিক্রিয়া

speedLimits উত্তরে নিম্নলিখিত এলিমেন্ট থাকতে পারে:

  • speedLimits — রোড মেটাডেটার একটি অ্যারে। প্রতিটি এলিমেন্টে নিম্নলিখিত ফিল্ড থাকে:
    • placeId — কোনও জায়গার জন্য অনন্য শনাক্তকারী। Roads API-এর মাধ্যমে রিটার্ন করা সব প্লেস আইডি রোড সেগমেন্টের সাথে সম্পর্কিত হবে।
    • speedLimit — রাস্তার সেই অংশের জন্য নির্ধারিত স্পিড লিমিট।
    • units — KPH বা MPH রিটার্ন করে।
  • snappedPoints — স্ন্যাপ করা পয়েন্টের অ্যারে। অনুরোধে path প্যারামিটার থাকলে তবেই এই অ্যারে থাকে। প্রতিটি পয়েন্টে নিম্নলিখিত ফিল্ড থাকে:
    • location — latitude ও longitude ভ্যালু আছে।
    • originalIndex — মূল অনুরোধে সংশ্লিষ্ট ভ্যালু বোঝায় এমন একটি পূর্ণসংখ্যা। অনুরোধের প্রতিটি ভ্যালু উত্তরের স্ন্যাপ করা ভ্যালুর সাথে ম্যাপ করা উচিত। এইসব ভ্যালু 0 থেকে ইন্ডেক্স করা হয়, তাই 4-এর originalIndex সহ একটি পয়েন্ট হল path প্যারামিটারে পাস করা ৫ম অক্ষাংশ/দ্রাঘিমাংশের স্ন্যাপ করা ভ্যালু।
    • placeId — কোনও জায়গার অনন্য শনাক্তকারী। Roads API-এর মাধ্যমে রিটার্ন করা সব প্লেস আইডি রোড সেগমেন্টের সাথে সম্পর্কিত হবে। রাস্তার ওই অংশে গতিসীমা নির্ধারণ করার জন্য গতিসীমা সংক্রান্ত অনুরোধে placeId পাস করা যেতে পারে।
  • warning_message — ব্যবহারকারীর কাছে দৃশ্যমান সতর্কতা সহ স্ট্রিং।

পাথ ব্যবহার করে অনুরোধের উদাহরণ

এই অনুরোধে, পর্তুগালের লিসবনে ভাস্কো দা গামা ব্রিজ অতিক্রমকারী পাথে নির্দিষ্ট অক্ষাংশ/দ্রাঘিমাংশ জোড়ার সবচেয়ে কাছাকাছি থাকা প্রতিটি রোড সেগমেন্টের স্পিড লিমিট পাওয়া যায়।

অনুরোধ

https://roads.googleapis.com/v1/speedLimits?path=38.75807927603043,-9.03741754643809|38.6896537,-9.1770515|41.1399289,-8.6094075&key=YOUR_API_KEY

প্রতিক্রিয়া

{
  speedLimits:
  [
    {
      placeId: "ChIJX12duJAwGQ0Ra0d4Oi4jOGE",
      speedLimit: 105,
      units: "KPH"
    },
    {
      placeId: "ChIJLQcticc0GQ0RoiNZJVa5GxU",
      speedLimit: 70,
      units: "KPH"
    },
    {
      placeId: "ChIJJ4vQRudkJA0RpednU70A-5M",
      speedLimit: 55,
      units: "KPH"
    }
  ],
  snappedPoints:
  [
    {
      location:
      {
        latitude: 38.75807927603043,
        longitude: -9.037417546438084
      },
      originalIndex: 0,
      placeId: "ChIJX12duJAwGQ0Ra0d4Oi4jOGE"
    },
    {
      location:
      {
        latitude: 38.689653701836896,
        longitude: -9.177051486847693
      },
      originalIndex: 1,
      placeId: "ChIJLQcticc0GQ0RoiNZJVa5GxU"
    },
    {
      location:
      {
        latitude: 41.13993011767777,
        longitude: -8.609400794783655
      },
      originalIndex: 2,
      placeId: "ChIJJ4vQRudkJA0RpednU70A-5M"
    }
  ],
  warningMessage: "Input path is too sparse. You should provide a path where consecutive points are closer to each other. Refer to the 'path' parameter in Google Roads API documentation."
}

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

প্লেস আইডি ব্যবহার করে অনুরোধের উদাহরণ

অক্ষাংশ/দ্রাঘিমাংশের পেয়ার ব্যবহার করার পরিবর্তে, আপনি রোড সেগমেন্টের প্লেস আইডি পাস করতে পারবেন। আমরা আপনাকে snapToRoads বা nearestRoads অনুরোধ ব্যবহার করে রাস্তার অংশের জন্য প্লেস আইডি পাওয়ার সাজেশন দিই। আপনি প্লেস আইডি পাস করালে, API প্রতিটি প্লেস আইডি দ্বারা উপস্থাপিত রোড সেগমেন্টের জন্য স্পিড লিমিট রিটার্ন করে। API প্রদান করা স্থান আইডিতে কোনও রোড-স্ন্যাপিং প্রয়োগ করে না।

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

অনুরোধ

https://roads.googleapis.com/v1/speedLimits?placeId=ChIJX12duJAwGQ0Ra0d4Oi4jOGE&placeId=ChIJLQcticc0GQ0RoiNZJVa5GxU&placeId=ChIJJ4vQRudkJA0RpednU70A-5M&key=YOUR_API_KEY

উত্তর

{
  "speedLimits": [
    {
      placeId: "ChIJX12duJAwGQ0Ra0d4Oi4jOGE",
      speedLimit: 105,
      units: "KPH"
    },
    {
      placeId: "ChIJLQcticc0GQ0RoiNZJVa5GxU",
      speedLimit: 70,
      units: "KPH"
    },
    {
      placeId: "ChIJJ4vQRudkJA0RpednU70A-5M",
      speedLimit: 55,
      units: "KPH"
    }
  ]
}

ব্যবহার সংক্রান্ত সাজেশন

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

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

কিছু/সব স্পিড লিমিট কেন দেখা যাচ্ছে না?

speedLimits না থাকার সবচেয়ে সাধারণ কারণ হল এমন কোনও জায়গার স্পিড লিমিট জানতে চাওয়া যা কোনও রাস্তার অংশ নয়।

উপরের উদাহরণে ভাস্কো ডা গামা ব্রিজ ব্যবহার করে ধারণাগুলি ব্যাখ্যা করা হয়েছে; ব্রিজটি E90 রোডকে রিও টেজো নদীর উপর দিয়ে নিয়ে যায়। ব্রিজটির নিজস্ব প্লেস আইডি হল ChIJUzt97ZEwGQ0RM1JzQfqoDtU. উপরের উত্তরে প্রথম রোড সেগমেন্টটি E90 রোডের অংশ এবং এর প্লেস আইডি হল ChIJX12duJAwGQ0Ra0d4Oi4jOGE. উদাহরণ হিসেবে দেওয়া অনুরোধে, আপনি যদি রাস্তার প্লেস আইডি ব্রিজের প্লেস আইডি দিয়ে পরিবর্তন করেন, তাহলে উত্তরে speedLimits অ্যারেতে শুধুমাত্র দুটি স্পিড লিমিট থাকবে, কারণ ব্রিজের প্লেস আইডি কোনও নির্দিষ্ট রাস্তার অংশকে বোঝায় না। এছাড়াও, যদি কোনও প্লেস আইডি রোড সেগমেন্টের জন্য না হয়, তাহলে উত্তরে কোনও গতির সীমা থাকবে না।

প্লেস আইডি ব্যবহার করে স্পিড লিমিট সংক্রান্ত অনুরোধ করার সময়, প্রতিটি প্লেস আইডি যেন রাস্তার কোনও অংশকে বোঝায়, অন্য কোনও ধরনের জায়গাকে নয়। snapToRoads বা nearestRoads অনুরোধ ব্যবহার করে আলাদা আলাদা রাস্তার অংশের জন্য প্লেস আইডি সবচেয়ে ভালোভাবে পাওয়া যায়, এই দুটির মধ্যে যেকোনও একটি থেকে একটি কল থেকে একাধিক প্লেস আইডি পাওয়া যেতে পারে।

কোনও রাস্তার সেগমেন্ট যদি গাড়ি ও ট্রাকের জন্য আলাদা আলাদা স্পিড লিমিট পোস্ট করে, তাহলে কী হবে?

Roads API শুধুমাত্র অটোমোবাইলের জন্য পোস্ট করা সর্বোচ্চ গতির সীমা ফেরত দেয়।