ঠিকানা যাচাইকরণ বনাম জিওকোডিং

উদ্দেশ্য

আপনাকে প্রায়ই কোনও জায়গার লোকেশন যাচাই করতে হয়। Google Maps Platform-এ কয়েকটি আলাদা পরিষেবা আছে যা আপনাকে এই ব্যবহারের ক্ষেত্রে সাহায্য করতে পারে। এই ডকুমেন্ট আপনাকে দুটি প্রাথমিক লোকেশন যাচাইকরণ পরিষেবার মধ্যে বেছে নিতে সাহায্য করে - Address Validation API এবং Geocoding API।

Address Validation API হল Google Maps Platform-এর একটি অফার যা গ্রাহকদের কোনও ঠিকানা সঠিক কিনা তা যাচাই করতে সাহায্য করে।

Geocoding API-এর মাধ্যমে জিওকোডিং হল ঠিকানাগুলিকে ভৌগোলিক কোঅর্ডিনেটে রূপান্তর করার প্রক্রিয়া, যা আপনি ম্যাপে মার্কার বা ম্যাপে কোনও পজিশন সেট করতে ব্যবহার করতে পারেন।

Address Validation এবং Geocoding API-এর মধ্যে পার্থক্যের একটি হাই-লেভেল ওভারভিউ এখানে পাওয়া যাবে।

Address Validation বনাম Geocoding API-এর মধ্যে কখন কোনটি বেছে নেবেন

Address-Validation-vs-Geocoding

উপরের ফ্লো চার্ট সম্পর্কে নোট:

  • ব্যবহারকারীর ইন্টার‍্যাকশন সংক্রান্ত ব্যবহারের ক্ষেত্রে বলতে বোঝায় যখন কোনও ব্যবহারকারী ফলাফলের সাথে ইন্টার‍্যাক্ট করার জন্য উপস্থিত থাকেন।
  • Places Autocomplete হল একটি জাভাস্ক্রিপ্ট API, তাই এটি ইউজার ইন্টারফেসের সাথে ইন্টিগ্রেট করার জন্য উপযুক্ত।
  • আপনার আগে থেকে থাকা ঠিকানায় ডেটার কোয়ালিটি সংক্রান্ত সমস্যা সম্পর্কে আপনি হয়ত জানেন। তাই, আপনি শুধু জিওকোড চাইলেও, ডেটাসেট ঠিক করার জন্য Address Validation API-এর মাধ্যমে সেইসব লোকেশন রান করালে ভালো হয়।

এমন অনেক পরিস্থিতি হতে পারে যেখানে আপনি উপরের ডিসিশন ট্রির উপর ভিত্তি করে, একটি প্রোডাক্টের পরিবর্তে অন্যটি বেছে নিতে পারেন। তবে, অন্যান্য পরিস্থিতিতে আপনার লক্ষ্য পূরণ করার জন্য দুটি প্রোডাক্টই ব্যবহার করতে হতে পারে।

আপনি Geocoding API-এর পরিবর্তে Address Validation API ব্যবহার করতে পারেন যখন:

  • সন্দেহজনক ডেটা থাকার সম্ভাবনা বেশি, অথবা যেখানে ভুল ঠিকানা পাওয়ার ফলে ডাউনস্ট্রিমে নেতিবাচক প্রভাব পড়বে। কারণ, Address Validation API, ইনপুট কেন উচ্চ নির্ভুলতা ফলাফল পায়নি সেই সম্পর্কে আরও মতামত প্রদান করে।
  • আপনাকে ব্যবহারকারীর ইনপুট (যেমন, বানান ভুল বা অনুপস্থিত ফিল্ড) সংশোধন করতে হবে, যা আউটপুটে সঠিক ফলাফল পাওয়ার সম্ভাবনা বাড়ায়।
  • আপনার টার্গেট করা অঞ্চল Geocoding API-এর তুলনায় Address Validation API থেকে আরও বেশি মেটাডেটা প্রদান করে, যেমন বিল্ডিংয়ের ধরন রেসিডেন্সিয়াল নাকি কমার্শিয়াল সেই অনুযায়ী ক্লাসিফিকেশন।

আপনি এইসব ক্ষেত্রে Address Validation API-এর পরিবর্তে Geocoding ব্যবহার করার সিদ্ধান্ত নিতে পারেন:

  • আপনার প্রাথমিক উদ্দেশ্য হল কোনও ঠিকানার লোকেশন খুঁজে বের করা এবং প্রতিটি ঠিকানার নির্ভুলতা গুরুত্বপূর্ণ নাও হতে পারে।
    • যেমন, আপনি হয়ত কোনও বড় ডেটাসেট থেকে হিটম্যাপ তৈরি করতে চান।
  • আপনার হাইপার-লোকাল গন্তব্যের বিবরণ প্রয়োজন, যেমন বিল্ডিংয়ের প্রবেশপথ, বিল্ডিংয়ের আউটলাইন বা পিক-আপ ও ড্রপ-অফ নেভিগেশন পয়েন্ট (Geocoding API v4-এ SearchDestinations পদ্ধতির মাধ্যমে উপলভ্য)।
  • আপনার একটি গ্লোবাল সমাধান প্রয়োজন এবং Address Validation API সব টার্গেট অঞ্চলে উপলভ্য নয়।

Geocoding API-এর তুলনায় Address Validation API-এর ক্ষমতা প্রদর্শন করে এমন কিছু উদাহরণ নিচে দেওয়া হল।

ভুল ঠিকানার উদাহরণ

1 Fake St, Mountain View, CA 94043, USA

Address Validation API এই ইনপুটকে তার স্বতন্ত্র ঠিকানা উপাদানে (রাস্তা, শহর, রাজ্য ইত্যাদি) ভাগ করে। এছাড়াও, এটি PREMISE লেভেল পর্যন্ত ঠিকানাটি কেন সঠিক নয় সেই সম্পর্কে বিস্তারিত মতামত দিতে পারে।

Fake St, Mountain View, CA-তে নেই এবং Address Validation API, কম্পোনেন্ট লেভেলের বিবরণে তা দেখায়:

{
  "componentName": {
    "text": "Fake St",
    "languageCode": "en"
   },
   "componentType": "route",
   "confirmationLevel":"UNCONFIRMED_BUT_PLAUSIBLE"
 }

এই ক্ষেত্রে যে গুরুত্বপূর্ণ প্রপার্টি পরীক্ষা করতে হবে সেটি হল confirmationLevel। Fake St-এর বিপরীতে UNCONFIRMED_BUT_PLAUSIBLE রিটার্ন করার মাধ্যমে, API নির্ধারণ করেছে যে কোনও রাস্তার নাম এটি হতে পারে, তবে এটি সহায়ক ঠিকানা ডেটার সাথে ম্যাচ করা যাচ্ছে না।

API ফলাফলকে মতামত হিসেবে ব্যবহার করে, এটি অনুমান করা যেতে পারে যে এই ইনপুটের (Fake St) রাস্তার কম্পোনেন্টে সমস্যা আছে।

Geocoding API-এর সাথে একই ঠিকানা ব্যবহার করে, এটি "ক্যালিফোর্নিয়া"-র সাথে ম্যাচ করতে পারে, যেমন জিওকোডার টুল থেকে নিম্নলিখিত স্ক্রিনশটে দেখানো হয়েছে:

alt_text

তবে, ফলাফলটি হল পুরো রাজ্যের একটি জিওকোড, ইনপুটের কোন উপাদানগুলি সম্ভাব্য ত্রুটিপূর্ণ ছিল সে সম্পর্কে ন্যূনতম মতামত সহ।

বানান ভুলের উদাহরণ

76 Buckingamm Palace Road, Londn, SW1W 9TQ, GB

উপরের ঠিকানায় দুটি বানান ভুল আছে, একটি রাস্তার নামে এবং অন্যটি এলাকার নামে।

Address Validation এবং Geocoding API, উভয়ই এই ভুলগুলি সংশোধন করতে এবং 76 Buckingham Palace Road, London, SW1W 9TQ-এর ফলাফল অর্জন করতে সক্ষম। তবে, Address Validation API এই প্রসেস সম্পর্কে আরও তথ্য দিতে পারে।

ইনপুট করার সময় ভুল বানান লেখা হয়েছে এমন একটি অ্যাড্রেস কম্পোনেন্ট দেখুন:

{
  "componentName": {
    "text": "Buckingham Palace Road",
    "languageCode": "en"
        },
        "componentType": "route",
        "confirmationLevel": "CONFIRMED",
        "spellCorrected": true
     }
}

Address Validation API একটি ফ্ল্যাগ রিটার্ন করে যা দেখায় যে ফিল্ডে সংশোধন করা হয়েছে। এই ফ্ল্যাগের বিরুদ্ধে বিজনেস লজিক প্রয়োগ করা যেতে পারে যাতে ডেটা প্রদানকারীর সাথে সংশোধন ডবল চেক করা যায়, যেমন ই-কমার্স চেক-আউটে কোনও গ্রাহক।

ডেটা না থাকা এবং বানান সংক্রান্ত ভুলের উদাহরণ

Bollschestraße 86, 12587, DE

উপরের ঠিকানায় রাস্তার নামের বানান ভুল আছে এবং বার্লিন শহরের (এলাকা) নাম নেই।

Address Validation API এই দুটি সমস্যারই সমাধান করতে পারে এবং PREMISE লেভেল জিওকোড ও PREMISE লেভেলে যাচাই করা ঠিকানা প্রদান করে:

Bölschestraße 86, 12587 Berlin, DE

Geocoding API এই ক্ষেত্রে ইনপুট সংক্রান্ত সমস্যা সমাধান করতে পারেনি এবং ZERO_RESULTS ফলাফল দেখিয়েছে।

অতিরিক্ত ঠিকানা মেটাডেটার উদাহরণ

111 8th Avenue Ste 123, New York, NY 10011-5201, US

ইউনিট নম্বর (Ste 123) ছাড়া এই ঠিকানাটি সঠিক, যা বিল্ডিংয়ের মধ্যে নেই।

Address Validation API, PREMISE (111 8th Ave) পর্যন্ত ঠিকানা যাচাই করতে পারে এবং প্রপার্টি সম্পর্কে কিছু মেটাডেটা প্রদান করে, যার মধ্যে এটি যে একটি বাণিজ্যিক প্রপার্টি সেই তথ্যও অন্তর্ভুক্ত থাকে

প্রাঙ্গণ:

"business": true

এছাড়াও, উত্তরে uspsData-এর অংশ হিসেবে ফেরত আসা dpvConfirmation ভ্যালু হল S:

"dpvConfirmation": "S"

dpvConfirmation-এর S ভ্যালু থেকে বোঝা যায় যে ঠিকানাটি PREMISE লেভেলে যাচাই করা হয়েছে, তবে ইনপুটে দেওয়া ইউনিট নম্বরটি সেই ঠিকানার সাথে যুক্ত নয়।

Geocoding API এই তথ্য প্রদান করতে পারছে না।

Geocoding API রেসপন্স বোঝা

এক নজরে

আপনি Geocoding API ব্যবহার করলে, জিওকোড ফলাফলে উত্তরে বিভিন্ন সূত্র থাকে যা প্রদত্ত ঠিকানার বিবরণ বোঝার জন্য ব্যবহার করা যেতে পারে।

Geocoding API যেভাবে কাজ করে তা হল একটি হায়ারার্কিতে ঠিকানা কম্পোনেন্ট সমাধান করা।

যেমন, ** 123 Example Street, Chicago, 60007, USA নিম্নলিখিত ক্রমে সমাধান করে:

/ Example Street/ Chicago/ 60007/ USA সেই ক্রমে মূল্যায়ন করা হবে। এই ক্ষেত্রে প্রথম ম্যাচ হল শিকাগো এবং আরও নির্দিষ্টভাবে, 60007 পিন কোড। তাই, এটি সেই পিন কোডের জন্য নিম্নলিখিত Place_id রিটার্ন করে:

ChIJwRKzf8ixD4gRHiXqucwr_HQ

Geocode API-এর উত্তরে নিম্নলিখিত তথ্য থাকে:

        "partial_match": true,
           "place_id": "ChIJwRKzf8ixD4gRHiXqucwr_HQ",
           "types": [
               "postal_code"
           ]

Geocoding API এই ঠিকানাটি কোন ধরনের জায়গার তা কনফার্ম করতে পারে। Geocoding API-এর মাধ্যমে ফেরত পাঠানো types ঠিকানার তালিকা এখানে পাওয়া যাবে।

ইনপুটের কোনও কম্পোনেন্ট সমাধান না হলে, API এটি রিটার্ন করে:

{
   "results": [],
   "status": "ZERO_RESULTS"
}

কোনও বাড়ির নম্বর ছাড়া শুধু রাস্তার ঠিকানা দিয়ে অনুরোধ করলে এই ফর্ম্যাটে ফলাফল পাওয়া যায়:

"types": [
  "route"
]

এর অর্থ হল, Geocoding API কোনও রাস্তার নম্বর খুঁজে পায়নি বা মেলাতে পারেনি।

মনে রাখবেন: কোনও ঠিকানা আছে কিনা তা জানতে, Geocoding API রেসপন্সে কোনও প্যারামিটার (যেমন types, partial_match, results, status)) সেট করা আছে কিনা তা চেক করুন। এর ফলে, কোনও ঠিকানা যে সঠিক হতে পারে সেই বিষয়ে কনফিডেন্স লেভেল ধীরে ধীরে বাড়বে, তবে এটি ১০০% সঠিক হবে না। সেই জন্যই আমাদের Address Validation API প্রয়োজন।

Geocoding API রেসপন্স থেকে ঠিকানার নির্ভুলতা সম্পর্কে আরও নিশ্চিত হতে আপনি উপরের কৌশলগুলি ব্যবহার করতে পারেন। তবে, Address Validation API-এর ফলাফলের মতো Geocoding API ফলাফলের নির্ভুলতা নির্ধারণ করার জন্য সঠিক মতামত প্রদান করবে না।

অবস্থানের প্রকার

এই বিভাগটি সঠিকভাবে বুঝতে, আপনাকে Geocoding API রেসপন্স থেকে ফেরত পাওয়া যেতে পারে এমন বিভিন্ন ধরনের লোকেশন বুঝতে হবে:

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

Geocoding API যদি ROOFTOP বা RANGE_INTERPOLATED-এর location_type দেখায়, তার মানে এই নয় যে ঠিকানাটি আছে। একইভাবে, Geocoding API যদি partial_match-এ সেট করা true ফ্ল্যাগ সহ ফিরে আসে, তাহলে এটি এখনও আপনার জন্য সঠিক ফলাফল হতে পারে।

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

মনে রাখবেন: আপনি Geocoding API ব্যবহার করার সিদ্ধান্ত নিলে, প্রাথমিক অনুরোধ এবং Geocoding API রেসপন্সের মধ্যে নিয়মিত ডেটার কোয়ালিটি চেক করার সাজেশন দেওয়া হয়।

আংশিক ম্যাচ এবং ভুল ম্যাচিং

কোনও ঠিকানা আংশিকভাবে ম্যাচ করলে, অর্থাৎ Geocoding API যদি ঠিকানাটি সঠিকভাবে শনাক্ত করতে না পারে, তাহলে উত্তরে এগুলি থাকে:

"partial_match": true,
"types": [
           "locality",
           "political"
         ]

উপরে উল্লেখ করা লোকেশনের ধরনের চেয়েও বেশি গুরুত্বপূর্ণ হল, উত্তরে partial_match = true কখন আছে তা বিবেচনা করা। partial_match থেকে বোঝা যায় যে Geocoding API আসল অনুরোধের জন্য সম্পূর্ণ মিল খুঁজে পায়নি, যদিও এটি অনুরোধ করা ঠিকানার অংশবিশেষের সাথে মিল খুঁজে পেয়েছে।

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

যেমন, "21 Henr St, Bristol, UK" লিখলে হেনরি স্ট্রিট এবং হেনরিয়েটা স্ট্রিট, দুটিরই আংশিক মিল দেখায়। মনে রাখবেন, কোনও অনুরোধে ঠিকানার কোনও অংশে বানান ভুল থাকলে, Geocoding API বিকল্প ঠিকানা সাজেস্ট করতে পারে। এইভাবে ট্রিগার করা সাজেশন আংশিক ম্যাচ হিসেবে চিহ্নিত করা হবে না।

সিন্থেটিক ঠিকানা

Geocoding API "সিন্থেটিক" ঠিকানার জন্য লোকেশন দেখাতে পারে যা Google-এর ডেটাবেসে সুনির্দিষ্ট লোকেশন হিসেবে নেই।

এই ধরনের পরিস্থিতিতে, রেসপন্স অবজেক্টে প্রায়ই একটি দীর্ঘ স্থান আইডি এবং নিম্নলিখিত প্রপার্টি থাকে: geometry.location_type=APPROXIMATE।

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

মনে রাখবেন: এটি আরেকটি উদাহরণ যেখানে Address Validation API-এর মাধ্যমে, কোনও ঠিকানা না থাকলে আপনি সরাসরি মতামত পাবেন।

Address Validation API রেসপন্স বোঝা

Address Validation API থেকে পাওয়া উত্তর কীভাবে বুঝতে হয় সেই সম্পর্কে ইতিমধ্যেই অনেক ডকুমেন্টেশন রয়েছে, তাই আমরা এখানে আরও বিস্তারিত আলোচনা করব না।

পেশাদার পদ্ধতি

ভৌগোলিক অবস্থান নির্দিষ্ট করা

Address Validation বা Geocoding API-তে কল করার সময়, যে ভৌগোলিক অঞ্চলে সেই ঠিকানা সার্চ করা হবে তা সীমিত করার চেষ্টা করা সবচেয়ে ভাল পদ্ধতি। দুটি API এটি দুটি ভিন্ন উপায়ে প্রয়োগ করে:

  • Geocoding API - অঞ্চল বায়াসিং

    জিওকোডগুলি কোনও নির্দিষ্ট দেশের মধ্যে হতে চলেছে বলে আপনি জানলে, অঞ্চল বায়াসিং ব্যবহার করে আপনি অনেক ভালো ফলাফল পাবেন। যেমন, আপনি যদি কানাডায় জিওকোডিং করেন, তাহলে কানাডার দিকে বায়াস করার জন্য আপনার অনুরোধে &region=ca যোগ করার সাজেশন আমরা দিই। মনে রাখবেন, অঞ্চল বায়াসিং শুধুমাত্র সেই অঞ্চলের ফলাফলকে অগ্রাধিকার দেয়। আপনি এখনও অঞ্চলের বাইরে ফলাফল পেতে পারেন।

  • Address Validation API - অঞ্চল কোড

    একইভাবে, regionCode ফিল্ড ব্যবহার করে অনুরোধে ISO2 কোড পাস করা হলে, Address Validation API আরও সঠিক ফলাফল প্রদান করে।

জায়গার আইডি স্টোর করা হচ্ছে

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

আপনার কাছে যাতে সবসময় সবচেয়ে আপ-টু-ডেট তথ্য থাকে তা নিশ্চিত করতে, place_id প্যারামিটার সহ জায়গার বিবরণ সংক্রান্ত অনুরোধ ব্যবহার করে প্রতি ১২ মাস অন্তর জায়গার আইডি রিফ্রেশ করুন।

মনে রাখবেন: জিওকোডিংয়ের জন্য পেশাদার পদ্ধতি সংক্রান্ত নির্দেশিকা পর্যালোচনা করতে ভুলবেন না।

উপসংহার

এই ডকুমেন্ট Address Validation ও Geocoding API-এর মধ্যে মূল পার্থক্য বর্ণনা করে। সংক্ষেপে, নিম্নলিখিত ক্ষেত্রে Address Validation API ব্যবহার করার কথা বিবেচনা করুন:

  • বিশেষ করে ডেলিভারি করার জন্য সঠিক ডাক ঠিকানা প্রয়োজন।
  • ইনপুট ডেটার কোয়ালিটি খারাপ বলে জানা গেছে। Address Validation API ইনপুট সংক্রান্ত সমস্যার ক্ষেত্রে আরও বেশি ক্ষমাশীল, যাচাই করা যায় না এমন ঠিকানা সংক্রান্ত কম্পোনেন্ট হাইলাইট করবে এবং ইনপুট ডেটা সংশোধন করবে।
  • ঠিকানার জন্য আরও তথ্য প্রয়োজন, যেমন আবাসিক বনাম বাণিজ্যিক (বেছে নেওয়া অঞ্চলে উপলভ্য)।

পরবর্তী ধাপ

নির্ভরযোগ্য ঠিকানার মাধ্যমে চেক-আউট, ডেলিভারি ও অপারেশন উন্নত করুন হোয়াইটপেপার ডাউনলোড করুন এবং Address Validation-এর মাধ্যমে চেক-আউট, ডেলিভারি ও অপারেশন উন্নত করা ওয়েবিনার দেখুন।

আরও পড়ার জন্য সাজেস্ট করা বই:

অবদানকারী

Google এই নিবন্ধটি রক্ষণাবেক্ষণ করে। নিম্নলিখিত কন্ট্রিবিউটররা এটি লিখেছেন।

প্রধান লেখক:

হেনরিক ভালভ | সলিউশন ইঞ্জিনিয়ার

টমাস অ্যাঙ্গলার্ট | সলিউশন ইঞ্জিনিয়ার

সার্থক গাঙ্গুলী | সলিউশন ইঞ্জিনিয়ার