জিওকোডিং করার সময় কোটা ব্যবহার অপ্টিমাইজ করা

জিওকোডিং হল ঠিকানাগুলিকে ("1600 অ্যাম্ফিথিয়েটার পার্কওয়ে, মাউন্টেন ভিউ, CA") ভৌগলিক স্থানাঙ্কে রূপান্তরিত করার প্রক্রিয়া (37.423021, -122.083739), যা আপনি মার্কার স্থাপন করতে বা মানচিত্রের অবস্থান করতে ব্যবহার করতে পারেন৷ গুগল ম্যাপ প্ল্যাটফর্ম এপিআই জিওকোডিং এর জন্য দুটি পন্থা প্রদান করে:

  • ক্লায়েন্ট-সাইড জিওকোডিং , যা ব্রাউজারে কার্যকর করা হয়, সাধারণত ব্যবহারকারীর ক্রিয়াকলাপের প্রতিক্রিয়া হিসাবে। Maps JavaScript API এমন ক্লাস প্রদান করে যা আপনার জন্য অনুরোধ করে। এই পদ্ধতিটি মানচিত্র জাভাস্ক্রিপ্ট API ডকুমেন্টেশনে বর্ণিত হয়েছে।
  • HTTP সার্ভার-সাইড জিওকোডিং , যা আপনার সার্ভারকে সরাসরি জিওকোডের জন্য Google এর সার্ভারগুলিকে জিজ্ঞাসা করতে দেয়৷ জিওকোডিং API হল ওয়েব পরিষেবা যা এই কার্যকারিতা প্রদান করে। সাধারণত, আপনি সার্ভার-সাইডে চলমান অন্যান্য কোডের সাথে এই পরিষেবাটি সংহত করেন। সার্ভার-সাইড জিওকোডিং জিওকোডিং API ডকুমেন্টেশনে বর্ণনা করা হয়েছে।

ক্লায়েন্ট-সাইড এবং সার্ভার-সাইড জিওকোডিংয়ের উদাহরণ

এখানে ক্লায়েন্ট-সাইড জিওকোডিংয়ের একটি নমুনা রয়েছে যা একটি ঠিকানা নেয়, এটি জিওকোড করে, মানচিত্রের কেন্দ্রকে সেই অবস্থানে নিয়ে যায় এবং সেখানে একটি মানচিত্র চিহ্নিতকারী যোগ করে:

geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'address': address }, function(results, status) {
  if (status == google.maps.GeocoderStatus.OK) {
    map.setCenter(results[0].geometry.location);
    var marker = new google.maps.Marker({
      map: map,
      position: results[0].geometry.location
    });
  }
});

আরও উদাহরণের জন্য, Maps JavaScript API ডকুমেন্টেশন দেখুন।

এখানে একটি সার্ভার-সাইড জিওকোডিং অনুরোধ করতে পাইথন ব্যবহার করে একটি উদাহরণ রয়েছে:

import urllib2

address="1600+Amphitheatre+Parkway,+Mountain+View,+CA"
key="my-key-here"
url="https://maps.googleapis.com/maps/api/geocode/json?address=%s&key=%s" % (address, key)

response = urllib2.urlopen(url)

jsongeocode = response.read()

এটি নিম্নলিখিত বিষয়বস্তু সহ একটি JSON অবজেক্ট তৈরি করে:

{
  "status": "OK",
  "results": [ {
    "types": street_address,
    "formatted_address": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA",
    "address_components": [ {
      "long_name": "1600",
      "short_name": "1600",
      "types": street_number
    }, {
      "long_name": "Amphitheatre Pkwy",
      "short_name": "Amphitheatre Pkwy",
      "types": route
    }, {
      "long_name": "Mountain View",
      "short_name": "Mountain View",
      "types": [ "locality", "political" ]
    }, {
      "long_name": "San Jose",
      "short_name": "San Jose",
      "types": [ "administrative_area_level_3", "political" ]
    }, {
      "long_name": "Santa Clara",
      "short_name": "Santa Clara",
      "types": [ "administrative_area_level_2", "political" ]
    }, {
      "long_name": "California",
      "short_name": "CA",
      "types": [ "administrative_area_level_1", "political" ]
    }, {
      "long_name": "United States",
      "short_name": "US",
      "types": [ "country", "political" ]
    }, {
      "long_name": "94043",
      "short_name": "94043",
      "types": postal_code
    } ],
    "geometry": {
      "location": {
        "lat": 37.4220323,
        "lng": -122.0845109
      },
      "location_type": "ROOFTOP",
      "viewport": {
        "southwest": {
          "lat": 37.4188847,
          "lng": -122.0876585
        },
        "northeast": {
          "lat": 37.4251799,
          "lng": -122.0813633
        }
      }
    }
  } ]
}

সার্ভার-সাইড জিওকোডার JSON-এর বিকল্প হিসেবে একটি XML ফর্ম্যাটও প্রদান করে। আরও উদাহরণের জন্য, জিওকোডিং API ডকুমেন্টেশন এবং পাইথন এবং অন্যান্য ভাষার জন্য ক্লায়েন্ট লাইব্রেরি দেখুন।

কোটা এবং খরচ বিবেচনা

জিওকোডিং খরচ, কোটা এবং হারের সীমাগুলি এই নথিতে বর্ণিত কৌশলগুলিকে চালিত করে৷

খরচ

জিওকোডিং অনুরোধের জন্য কোটা-প্রতি-দিন (QPD) সীমা আর ব্যবহার করা হয় না । পরিবর্তে, প্রতিটি জিওকোডিং অনুরোধ, ব্রাউজারের মাধ্যমে ক্লায়েন্ট-সাইড হোক বা জিওকোডিং API ওয়েব পরিষেবার মাধ্যমে সার্ভার-সাইড হোক, প্রতি-প্রতি মূল্যে বিল করা হয়। আপনার ব্যবহারের খরচ পরিচালনা করতে, আপনার দৈনিক কোটা ক্যাপিং বিবেচনা করুন৷

হারের সীমা

জিওকোডিং পরিষেবার হার 3,000 QPM (প্রতি মিনিটে প্রশ্ন), ক্লায়েন্ট-সাইড এবং সার্ভার-সাইড প্রশ্নের সমষ্টি হিসাবে গণনা করা হয়।

পর্যায়ক্রমিক বিরতিতে ক্লায়েন্ট-সাইড জিওকোডিং অনুরোধগুলি চালানোর সময়, যেমন একটি মোবাইল অ্যাপে, যদি আপনার সমস্ত ব্যবহারকারী একই সময়ে অনুরোধ করে থাকে (উদাহরণস্বরূপ, প্রতিটি মিনিটের একই সেকেন্ডে) আপনার অনুরোধগুলি ত্রুটি দেখাতে পারে৷ এটি এড়াতে, নিম্নলিখিতগুলির মধ্যে একটি বিবেচনা করুন:

  • আপনার অনুরোধে এলোমেলো ব্যবধানের পরিচয় দিন (জিটার)। আপনার সমগ্র ইউজারবেস জুড়ে অনুরোধগুলি এলোমেলো হয় তা নিশ্চিত করুন।
  • যদি অ্যান্ড্রয়েডের জন্য ডেভেলপ করা হয়, একটি অযৌক্তিক পুনরাবৃত্তি অ্যালার্ম ব্যবহার করুন।
  • যদি অ্যান্ড্রয়েডের জন্য বিকাশ করা হয়, একটি উপযুক্ত অবস্থান কৌশল নির্বাচন করুন৷

ক্যাশিং

ক্যাশিং সম্পর্কে জিওকোডিং API নীতি দেখুন।

কখন ক্লায়েন্ট-সাইড জিওকোডিং ব্যবহার করবেন

সংক্ষিপ্ত উত্তর হল "প্রায় সবসময়।" কারণগুলি হল:

  • ক্লায়েন্ট-সাইড অনুরোধ এবং প্রতিক্রিয়া ব্যবহারকারীদের জন্য একটি দ্রুত, আরও ইন্টারেক্টিভ অভিজ্ঞতা প্রদান করে।
  • একটি ক্লায়েন্ট-সাইড অনুরোধ এমন তথ্য অন্তর্ভুক্ত করতে পারে যা জিওকোডিং গুণমান উন্নত করে: ব্যবহারকারীর ভাষা, অঞ্চল এবং ভিউপোর্ট।

বিশেষ করে, ক্লায়েন্ট-সাইড জিওকোডিং সর্বোত্তম যখন ব্যবহারকারীর ইনপুটের উপর ভিত্তি করে ঠিকানা জিওকোডিং করা হয়।

ক্লায়েন্ট-সাইড জিওকোডিংয়ের জন্য দুটি মৌলিক আর্কিটেকচার রয়েছে:

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

কখন সার্ভার-সাইড জিওকোডিং ব্যবহার করবেন

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

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