সমস্যা সমাধান

ত্রুটি

কোনো ত্রুটির ক্ষেত্রে, একটি স্ট্যান্ডার্ড ফরম্যাটের ত্রুটিপূর্ণ রেসপন্স বডি ফেরত দেওয়া হবে এবং HTTP স্ট্যাটাস কোডটি একটি ত্রুটিপূর্ণ স্ট্যাটাসে সেট করা হবে।

রেসপন্সটিতে একটি অবজেক্ট রয়েছে, যার মধ্যে নিম্নলিখিত কী-গুলো সহ একটিমাত্র error অবজেক্ট আছে:

  • code : এটি রেসপন্সের HTTP স্ট্যাটাসের সমান।
  • message : ত্রুটিটির একটি সংক্ষিপ্ত বিবরণ।
  • status : একটি স্ট্যাটাস কোড যা ত্রুটির প্রকৃতি নির্দেশ করে।

উদাহরণস্বরূপ, একটি অবৈধ placeId প্যারামিটার পাঠালে নিম্নলিখিত ত্রুটিটি দেখা দেবে:

{
  "error": {
    "code": 400,
    "message": "\"placeId\" value is malformed: \"aChIJqaknMTeuEmsRUYCD5Wd9ARM\"",
    "status": "INVALID_ARGUMENT"
  }
}

সম্ভাব্য ত্রুটিগুলো হলো:

কোড অবস্থা বার্তা সমস্যা সমাধান
৪০০ INVALID_ARGUMENT আপনার দেওয়া চাবিটি অবৈধ। আপনার এপিআই কী বৈধ নয় অথবা অনুরোধে অন্তর্ভুক্ত করা হয়নি। অনুগ্রহ করে নিশ্চিত করুন যে আপনি সম্পূর্ণ কী-টি অন্তর্ভুক্ত করেছেন এবং এই কী-টির জন্য এপিআই সক্রিয় করেছেন।
৪০০ INVALID_ARGUMENT "path" প্যারামিটারে একটি অবৈধ মান রয়েছে: ☃" আপনার অনুরোধে অবৈধ আর্গুমেন্ট ছিল। এই ত্রুটির সবচেয়ে সম্ভাব্য কারণগুলো হলো:
  • আপনার path প্যারামিটারে একটি সমস্যা আছে।
    অনুগ্রহ করে নিশ্চিত করুন যে আপনার কমপক্ষে ১ এবং ১০০-এর কম পয়েন্ট আছে। প্রতিটি পয়েন্ট কমা দ্বারা পৃথক করা একজোড়া সংখ্যা হবে, যেমন: 48.409114,-123.369158 । পয়েন্টগুলো পাইপ চিহ্ন ‘|’ দ্বারা পৃথক করতে হবে।
  • আপনার অনুরোধে একটি অবৈধ placeId অন্তর্ভুক্ত ছিল।
  • আপনার অনুরোধে placeId ) এবং পথ ( path উভয়ই অন্তর্ভুক্ত ছিল। প্রতিটি অনুরোধের জন্য এই প্যারামিটারগুলোর মধ্যে কেবল একটিই নির্দিষ্ট করা যেতে পারে।

যদি এমন কোনো রাস্তার জন্য placeId দেওয়া হয় যার অস্তিত্ব আর নেই, অথবা এমন কোনো স্থানের জন্য যা রাস্তা নয়, তাহলে এই ত্রুটিটি ফেরত দেওয়া হবে না।

৪০৩ PERMISSION_DENIED অনিবন্ধিত অনুরোধটি ব্লক করা হয়েছে। অনুগ্রহ করে গুগল ডেভেলপারস কনসোল ব্যবহার করে সাইন আপ করুন। নিম্নলিখিত এক বা একাধিক কারণে অনুরোধটি প্রত্যাখ্যান করা হয়েছে:
  • এপিআই কী অনুপস্থিত অথবা অবৈধ।
  • আপনার অ্যাকাউন্টে বিলিং চালু করা হয়নি।
  • স্বেচ্ছায় নির্ধারিত ব্যবহারের সীমা অতিক্রম করা হয়েছে।
  • প্রদত্ত অর্থপ্রদানের পদ্ধতিটি আর বৈধ নয় (উদাহরণস্বরূপ, ক্রেডিট কার্ডের মেয়াদ শেষ হয়ে গেছে)।

গুগল ম্যাপস প্ল্যাটফর্মের প্রোডাক্টগুলো ব্যবহার করার জন্য, আপনার অ্যাকাউন্টে বিলিং চালু থাকতে হবে এবং সমস্ত অনুরোধে একটি বৈধ এপিআই কী অন্তর্ভুক্ত থাকতে হবে। এটি ঠিক করতে, নিম্নলিখিত পদক্ষেপগুলো নিন:

৪০৪ NOT_FOUND এই পরিষেবাটির জন্য HTTPS আবশ্যক। নিশ্চিত করুন যে আপনি https ://roads.googleapis.com/ -এ অনুরোধ পাঠাচ্ছেন, http ://roads.googleapis.com/ নয়।
৪২৯ RESOURCE_EXHAUSTED প্রকল্পের অনুরোধের সীমা পূর্ণ হয়ে যাওয়ায় অনুরোধটির গতি কমানো হয়েছে। আপনি গুগল ক্লাউড প্ল্যাটফর্ম কনসোলে কনফিগার করা অনুরোধের সীমা অতিক্রম করেছেন। এই সীমা সাধারণত দৈনিক অনুরোধ, প্রতি ১০০ সেকেন্ডে অনুরোধ, এবং প্রতি ব্যবহারকারীর জন্য প্রতি ১০০ সেকেন্ডে অনুরোধ হিসাবে সেট করা হয়। এই সীমা এমনভাবে কনফিগার করা উচিত যাতে কোনো একক বা ছোট ব্যবহারকারী গোষ্ঠী আপনার দৈনিক কোটা শেষ করে ফেলতে না পারে, এবং একই সাথে সকল ব্যবহারকারী যুক্তিসঙ্গত অ্যাক্সেস পায়। এই সীমাগুলো কনফিগার করতে ‘Capping API Usage’ দেখুন।

সূচকীয় ব্যাকঅফ

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

সমস্যা সমাধান সংক্রান্ত প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী

বাস্তবায়ন সংক্রান্ত সমস্যা

কোন ফ্রিকোয়েন্সিতে আমার গাড়ির অবস্থান স্যাম্পল করা উচিত?
রাস্তায় নিখুঁতভাবে ছবি তোলার জন্য প্রতি ১-১০ সেকেন্ডে ছবি তোলার পরামর্শ দেওয়া হয়।
প্রতিটি কোয়েরির জন্য আমি কত পয়েন্ট পাঠাতে পারব তার কি কোনো সীমা আছে?
হ্যাঁ, একটি কোয়েরিতে সর্বাধিক ১০০টি পয়েন্ট থাকতে পারে।
আমার তোলা অক্ষাংশ/দ্রাঘিমাংশের জোড়াগুলো সংরক্ষণ করার জন্য কী পরিমাণ নির্ভুলতা ব্যবহার করা উচিত?
সব জুম লেভেলে, এমনকি সর্বোচ্চ জুম লেভেলেও, তোলা পথগুলো যেন রাস্তা অনুসরণ করে, তা নিশ্চিত করতে আপনার তোলা অক্ষাংশ/দ্রাঘিমাংশের জোড়াগুলো দশমিকের পর ৭ ঘর পর্যন্ত নির্ভুলভাবে সংরক্ষণ করা উচিত।
আমি কি স্ন্যাপ করা পাথগুলো প্রদর্শন করতে এনকোডেড পলিলাইন ব্যবহার করতে পারি?
এনকোডেড পলিলাইনগুলো শুধুমাত্র ৫ দশমিক স্থান পর্যন্ত নির্ভুলতায় নির্দিষ্ট করা হয়, যার ফলে প্রায় ২ মিটারের একটি ত্রুটি থাকে। সুতরাং, আপনি যদি উচ্চ জুম স্তরে আপনার স্ন্যাপ করা পাথগুলোকে রাস্তা অনুসরণ করাতে চান, তবে এনকোডেড পলিলাইন উপযুক্ত নয়।

সাধারণ সমস্যা

কিছু পয়েন্ট স্ন্যাপ হচ্ছে না, অথবা স্ন্যাপ করা পাথগুলোতে ফাঁক থেকে যাচ্ছে। আমি এটা কীভাবে ঠিক করতে পারি?
  • আপনি যদি নির্দিষ্ট সময় অন্তর আপনার পয়েন্টগুলো স্যাম্পল করেন, তবে নিশ্চিত করুন যেন পয়েন্টগুলো কম সময়ের ব্যবধানে (প্রতি ১-১০ সেকেন্ডে) নেওয়া হয়। যদি এর চেয়ে বেশি সময়ের ব্যবধান (যেমন ৬০ সেকেন্ড) ব্যবহার করা হয়, তাহলে স্ন্যাপ-টু-রোড অ্যালগরিদম হয়তো যথেষ্ট নির্ভুলতার সাথে ব্যবহৃত রাস্তাগুলো নির্ধারণ করতে পারবে না।
  • আপনি যদি পয়েন্ট তৈরি করার জন্য ম্যাপে ম্যানুয়ালি ক্লিক করেন, তাহলে খুব সহজেই অল্প বা বিক্ষিপ্ত পয়েন্টযুক্ত পথ তৈরি হয়ে যেতে পারে, যা স্ন্যাপিং অ্যালগরিদম ভালোভাবে সামলাতে পারে না। স্ন্যাপিং অ্যালগরিদম কাছাকাছি থাকা পয়েন্টগুলোর জন্য সবচেয়ে ভালো কাজ করে। আপনার পথগুলো পরীক্ষা করার জন্য 'স্ন্যাপ টু রোডস' ডেমোটি ব্যবহার করে দেখুন অথবা ' রোডস ইন্সপেক্টর' ব্যবহার করুন।
    জুম ইন করলে আমার তোলা পাথগুলো কেন অমসৃণ বা রাস্তা থেকে সামান্য সরে যায়?
    • আপনি কি স্ন্যাপ করা অক্ষাংশ/দ্রাঘিমাংশ জোড়াগুলো প্রদর্শন করার আগে সেগুলোর নির্ভুলতা কমিয়ে দিচ্ছেন? ৭ দশমিক স্থান পর্যন্ত কম নির্ভুলতায় স্ন্যাপ করা অক্ষাংশ/দ্রাঘিমাংশ জোড়া সংরক্ষণ করলে, মানচিত্রে স্ন্যাপ করা পথটি প্রদর্শন করার সময় নির্ভুলতাজনিত ত্রুটি দেখা দেয়।
    • আপনি কি এনকোডেড পলিলাইন ব্যবহার করছেন? এনকোডেড পলিলাইন অক্ষাংশ/দ্রাঘিমাংশের জোড়াকে দশমিকের পর ৫ ঘর পর্যন্ত ছেঁটে ফেলে, যার ফলে কয়েক মিটারের একটি ত্রুটি দেখা দেয়। এর ফলস্বরূপ, উচ্চ জুম স্তরে লাইনগুলো আঁকাবাঁকা বা রাস্তা থেকে সামান্য সরে যায়।

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

    কী কারণে রাস্তা X-এর গতিসীমা ভুলভাবে প্রদর্শিত হতে পারে?
    গতিসীমা বিভিন্ন উৎস থেকে আসে, যেগুলোর নির্ভুলতা এবং পরিধি ভিন্ন ভিন্ন হয়ে থাকে। যদি আপনি কোনো নির্দিষ্ট ধারা লক্ষ্য করেন, যেমন কোনো বিশেষ ধরনের রাস্তা বা কোনো নির্দিষ্ট এলাকার গতিসীমা ধারাবাহিকভাবে ভুল দেখানো হচ্ছে, তবে অনুগ্রহ করে আমাদের জানানোর জন্য নিম্নলিখিত পদক্ষেপগুলো গ্রহণ করুন:
    1. আপনার ডেস্কটপ কম্পিউটারে গুগল ম্যাপস অথবা অ্যান্ড্রয়েডের জন্য গুগল ম্যাপস অ্যাপটি খুলুন।
    2. বাম পাশের মেনুটি খুলুন।
    3. ‘মতামত পাঠান’ নির্বাচন করুন। দ্রষ্টব্য: আপনাকে লগ ইন করতে বলা হতে পারে।
    4. মানচিত্র সম্পাদনা নির্বাচন করুন।
    5. যে সড়ক অংশটি আপনি সম্পাদনা করতে চান, সেটি নির্বাচন করুন।
    6. পরবর্তী নির্বাচন করুন।
    7. "অন্যান্য" ক্ষেত্রে উল্লেখ করুন যে ওই রাস্তাটির জন্য গতিসীমা ভুল।
    8. জমা দিন নির্বাচন করুন।
    আপনি এখানে অন্যান্য সমস্যাও জানাতে পারেন (যেমন, যদি রাস্তাটির নাম ভুল থাকে, নকশা ভুল হয়, বা রাস্তাটি বন্ধ বা ব্যক্তিগত মালিকানাধীন হয়)।
    আমার তোলা পথটি রাস্তা অনুসরণ না করে কেন কোণাকুণি পথ ধরে যাচ্ছে?
    এই সমস্যাটি সমাধান করতে, নিম্নলিখিত বিষয়গুলো যাচাই করুন:
    • নিশ্চিত করুন যে interpolate প্যারামিটারটি true তে সেট করা আছে।
    • আপনার মূল ডেটা পয়েন্টগুলো যথেষ্ট কাছাকাছি ব্যবধানে (প্রতি ১-১০ সেকেন্ডে) সংগ্রহ করা হয়েছে কিনা তা যাচাই করুন।
    যে রাস্তার গতিসীমায় কোনো পরিবর্তন নেই, তার স্ন্যাপ করা পাথে কেন অনেকগুলো রাস্তার অংশ ফেরত আসছে?
    যখন interpolate প্যারামিটারটি true তে সেট করা থাকে, তখন snap-to-road কোয়েরিটি এমন একটি পলিলাইন রিটার্ন করে যা রাস্তার মোড়, বাঁক এবং গোলচত্বর বরাবর রাস্তাটিকে অনুসরণ করে। যদি রাস্তাটি বাঁকানো হয়, তাহলে গতিসীমা অপরিবর্তিত থাকলেও একাধিক রোড সেগমেন্ট রিটার্ন করা হয়, যাতে রাস্তার জ্যামিতিকে ঘনিষ্ঠভাবে অনুসরণ করে এমন একটি পলিলাইন তৈরি করা যায়।