সমস্যা ও তার সমাধান

Isochrones API স্ট্যান্ডার্ড Google Cloud google.rpc.Status JSON ফর্ম্যাট ব্যবহার করে সমস্যা দেখায়:

{
  "error": {
    "code": 400,
    "message": "Violation in GenerateIsochroneRequest.travel_duration: travel_duration must be at least 1 second and not exceed 3600 seconds (60 minutes) for DRIVE or TWO_WHEELER mode or 7200 seconds (120 minutes) for other modes",
    "status": "INVALID_ARGUMENT"
  }
}

প্রোগ্রাম্যাটিক উপায়ে সমস্যা সমাধান করতে status (বা HTTP code) ফিল্ড ব্যবহার করুন। message টেক্সট ডেভেলপারদের জন্য এবং এটি পরিবর্তন হতে পারে, তাই এটি পার্স করবেন না।

Isochrones API নিয়ে কাজ করার সময়, আপনি নিম্নলিখিত সাধারণ সমস্যার স্ট্যাটাস কোড দেখতে পেতে পারেন:

  • 400 INVALID_ARGUMENT: অনুরোধে ভুল প্যারামিটার বা সিনট্যাক্স আছে:
    • সময়সীমা: travelDuration যেন কমপক্ষে "1s" হয়, "s" (যেমন "1800s") দিয়ে শেষ হয় এবং মোডের সীমা অতিক্রম না করে তা নিশ্চিত করুন: DRIVE ও TWO_WHEELER-এর জন্য 3600s (৬০ মিনিট) অথবা WALK ও BICYCLE-এর জন্য 7200s (১২০ মিনিট)। শূন্য ("0s"), নেগেটিভ ভ্যালু এবং ১ সেকেন্ডের কম সাব-সেকেন্ড ভ্যালু (যেমন "0.5s") বাতিল করা হয়।
    • ট্রাফিক সংক্রান্ত পছন্দ: travelMode-এর মান WALK বা BICYCLE হলে, routingPreference-এর মান যেন TRAFFIC_AWARE-এ সেট করা না থাকে তা নিশ্চিত করুন। লাইভ ট্রাফিক শুধুমাত্র DRIVE এবং TWO_WHEELER-এর জন্য কাজ করে।
    • প্রয়োজনীয় enum: travelMode এবং travelDirection (FROM অথবা TO) দুটিই নির্দিষ্ট করা আছে এবং *_UNSPECIFIED-এ সেট করা নেই তা নিশ্চিত করুন।
    • উৎসের স্থানাঙ্ক (location): latitude ([-90, 90]-এ) এবং longitude ([-180, 180]-এ) দুটিই সেট করুন। বাদ দেওয়া ফিল্ডকে কোনও সমস্যা ছাড়াই 0 হিসেবে বিবেচনা করা হয়: দুটিই বাদ দিলে (0, 0) হয়, যা বাতিল করা হয়; শুধু latitude বাদ দিলে উৎসকে নিরক্ষরেখায় স্থাপন করা হয়; এবং শুধু longitude বাদ দিলে এটিকে মূল মধ্যরেখায় স্থাপন করা হয়।
    • প্লেস আইডি ফর্ম্যাট (place): নিশ্চিত করুন যে place হল একটি প্লেস আইডি বা একটি places/{place_id} রিসোর্সের নাম (যেমন, "places/ChIJIQBpAG2ahYAR_6128GcTUEo"), কোনও অতিরিক্ত পাথ সেগমেন্ট ছাড়াই, এবং একটি সঠিক প্লেস আইডিকে রেফার করে।
    • ফিল্ড মাস্ক (X-Goog-FieldMask): দেওয়া থাকলে, হেডারকে অবশ্যই সঠিক রেসপন্স পাথ উল্লেখ করতে হবে, যেমন isochrone, isochrone.geoJson, বা *।
    • ভুল API কী (API_KEY_INVALID): X-Goog-Api-Key বা ?key=-এ ভুলভাবে ফর্ম্যাট করা বা অপরিচিত API কী API_KEY_INVALID কারণের জন্য 400 INVALID_ARGUMENT রিটার্ন করে।
  • 403 PERMISSION_DENIED: যাচাইকরণ বা অনুমোদন করা যায়নি:
    • অনুরোধে কোনও যাচাইকরণ সংক্রান্ত ক্রেডেনশিয়াল (X-Goog-Api-Key, ?key= বা Authorization: Bearer টোকেন) প্রদান করা হয়নি।
    • আপনার Google Cloud প্রোজেক্টে Isochrones API (isochrones.googleapis.com) চালু করা নেই অথবা বিলিং চালু করা নেই।
    • আপনার API কী-তে API টার্গেট, IP অ্যাড্রেস বা HTTP রেফারার সংক্রান্ত বিধিনিষেধ আছে যা isochrones.googleapis.com-এ অনুরোধ ব্লক করে।
  • 404 NOT_FOUND: উৎস সমাধান করা যায়নি বা রোড নেটওয়ার্কে স্ন্যাপ করা যায়নি:
    • place-এর লোকেশন জানা যায়নি। প্লেস আইডিটি সঠিক এবং বর্তমান কিনা তা চেক করুন।
    • শুরু হওয়ার জায়গা location বা place সেন্ট্রয়েড, সর্বাধিক স্ন্যাপিং দূরত্বের (প্রায় ২০০ মিটার বা WALK ও BICYCLE-এর জন্য আরও কম) চেয়ে মোড-মানানসই রাস্তার অংশ থেকে আরও দূরে অবস্থিত। স্থানাঙ্কটি কোনও সর্বজনীন রাস্তার কাছাকাছি সরান অথবা কোনও বড় পার্ক বা ল্যান্ডমার্কের প্লেস আইডির পরিবর্তে রাস্তার প্রবেশপথের স্থানাঙ্ক পাস করুন।
    • স্থানাঙ্কটি এমন একটি এলাকায় রয়েছে যেখানে রাস্তার ডেটা নেই (যেমন খোলা সমুদ্র)।
  • 429 RESOURCE_EXHAUSTED: আপনার প্রোজেক্ট প্রতি মিনিটের কোটা সীমা অতিক্রম করেছে (ডিফল্ট প্রতি মিনিটে ৩০০টি অনুরোধ):

    {
      "error": {
        "code": 429,
        "message": "Quota exceeded for quota metric 'Requests' and limit 'Requests per minute' of service 'isochrones.googleapis.com'.",
        "status": "RESOURCE_EXHAUSTED"
      }
    }
    

    ক্লায়েন্টের অনুরোধের হার থ্রটল করুন এবং র‍্যান্ডমাইজড জিটার সহ এক্সপোনেনশিয়াল ব্যাকঅফ ব্যবহার করে 429 রেসপন্স আবার চেষ্টা করুন।

  • 503 UNAVAILABLE: পরিষেবা সাময়িকভাবে উপলভ্য নেই অথবা ওভারলোড হয়ে গেছে। এক্সপোনেনশিয়াল ব্যাকঅফ ব্যবহার করে অনুরোধটি আবার করুন।

  • 500 INTERNAL: ইন্টার্নাল সার্ভার সংক্রান্ত সমস্যা হয়েছে, যেমন ব্যাকএন্ড টাইমআউট। এক্সপোনেনশিয়াল ব্যাকঅফ ব্যবহার করে অনুরোধটি আবার করুন।