জিওকোডিং পরিষেবা

ওভারভিউ

জিওকোডিং হল ঠিকানাগুলিকে (যেমন "1600 Amphitheatre Parkway, Mountain View, CA") ভৌগলিক স্থানাঙ্কে রূপান্তরিত করার প্রক্রিয়া (যেমন অক্ষাংশ 37.423021 এবং দ্রাঘিমাংশ -122.083739), যা আপনি মার্কার স্থাপন করতে বা মানচিত্রের অবস্থান করতে ব্যবহার করতে পারেন৷

রিভার্স জিওকোডিং হল ভৌগলিক স্থানাঙ্কগুলিকে মানব-পাঠযোগ্য ঠিকানায় রূপান্তর করার প্রক্রিয়া ( বিপরীত জিওকোডিং (ঠিকানা লুকআপ) দেখুন)।

আপনি একটি প্রদত্ত স্থান আইডির ঠিকানা খুঁজে পেতে জিওকোডার ব্যবহার করতে পারেন।

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

শুরু হচ্ছে

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

আপনার সক্রিয় API এর তালিকা দেখতে:

  1. গুগল ক্লাউড কনসোলে যান।
  2. একটি প্রকল্প নির্বাচন করুন বোতামে ক্লিক করুন, তারপরে আপনি মানচিত্র জাভাস্ক্রিপ্ট API-এর জন্য সেট আপ করা একই প্রকল্প নির্বাচন করুন এবং খুলুন ক্লিক করুন।
  3. ড্যাশবোর্ডে API-এর তালিকা থেকে, জিওকোডিং API সন্ধান করুন।
  4. আপনি যদি তালিকায় API দেখতে পান, আপনি সম্পূর্ণ প্রস্তুত। API তালিকাভুক্ত না হলে, এটি সক্ষম করুন:
    1. পৃষ্ঠার শীর্ষে, লাইব্রেরি ট্যাব প্রদর্শন করতে API ENABLE নির্বাচন করুন। বিকল্পভাবে, বাম পাশের মেনু থেকে, লাইব্রেরি নির্বাচন করুন।
    2. জিওকোডিং API অনুসন্ধান করুন, তারপর ফলাফল তালিকা থেকে এটি নির্বাচন করুন।
    3. ENABLE নির্বাচন করুন। প্রক্রিয়াটি শেষ হলে, জিওকোডিং API ড্যাশবোর্ডে API-এর তালিকায় উপস্থিত হয়।

মূল্য এবং নীতি

মূল্য নির্ধারণ

16 জুলাই, 2018 থেকে কার্যকরী, মানচিত্র, রুট এবং স্থানগুলির জন্য একটি নতুন মূল্য-প্রদানের পরিকল্পনা কার্যকর হয়েছে৷ আপনার জাভাস্ক্রিপ্ট জিওকোডিং পরিষেবা ব্যবহারের জন্য নতুন মূল্য এবং ব্যবহারের সীমা সম্পর্কে আরও জানতে, জিওকোডিং API-এর ব্যবহার এবং বিলিং দেখুন৷

নীতিমালা

জিওকোডিং পরিষেবার ব্যবহার অবশ্যই জিওকোডিং API-এর জন্য বর্ণিত নীতি অনুসারে হতে হবে।

জিওকোডিং অনুরোধ

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

আপনি google.maps.Geocoder কনস্ট্রাক্টর অবজেক্টের মাধ্যমে আপনার কোডের মধ্যে Google Maps API জিওকোডিং পরিষেবা অ্যাক্সেস করেন। Geocoder.geocode() পদ্ধতি জিওকোডিং পরিষেবার কাছে একটি অনুরোধ শুরু করে, এটিকে একটি GeocoderRequest অবজেক্ট আক্ষরিকভাবে পাস করে যাতে ইনপুট শর্তাদি থাকে এবং প্রতিক্রিয়া প্রাপ্তির পরে চালানোর জন্য একটি কলব্যাক পদ্ধতি।

GeocoderRequest অবজেক্ট আক্ষরিক নিম্নলিখিত ক্ষেত্র রয়েছে:

{
 address: string,
 location: LatLng,
 placeId: string,
 bounds: LatLngBounds,
 componentRestrictions: GeocoderComponentRestrictions,
 region: string
}

প্রয়োজনীয় পরামিতি: আপনাকে অবশ্যই নিম্নলিখিত ক্ষেত্রগুলির মধ্যে একটি এবং শুধুমাত্র একটি সরবরাহ করতে হবে:

  • address - যে ঠিকানাটি আপনি জিওকোড করতে চান।
    বা
    locationLatLng (বা LatLngLiteral ) যার জন্য আপনি সবচেয়ে কাছের, মানুষের-পাঠযোগ্য ঠিকানা পেতে চান। জিওকোডার একটি বিপরীত জিওকোড সম্পাদন করে। আরও তথ্যের জন্য বিপরীত জিওকোডিং দেখুন।
    বা
    placeId — যে জায়গার জন্য আপনি সবচেয়ে কাছের, মানুষের-পাঠযোগ্য ঠিকানা পেতে চান সেই জায়গার আইডি। একটি স্থান আইডির জন্য একটি ঠিকানা পুনরুদ্ধার সম্পর্কে আরও দেখুন।

ঐচ্ছিক পরামিতি:

  • boundsLatLngBounds যার মধ্যে জিওকোডের ফলাফলকে আরও স্পষ্টভাবে বায়াস করতে হয়। bounds প্যারামিটার শুধুমাত্র জিওকোডারের ফলাফলকে প্রভাবিত করবে, সম্পূর্ণরূপে সীমাবদ্ধ করবে না। নীচে ভিউপোর্ট বায়াসিং সম্পর্কে আরও তথ্য দেখুন।
  • componentRestrictions — একটি নির্দিষ্ট এলাকায় ফলাফল সীমাবদ্ধ করতে ব্যবহৃত হয়। নীচে উপাদান ফিল্টারিং সম্পর্কে আরও তথ্য দেখুন।
  • region — অঞ্চল কোড, একটি দুই-অক্ষর (অ-সংখ্যাসূচক) ইউনিকোড অঞ্চল সাবট্যাগ হিসাবে নির্দিষ্ট হিসাবে নির্দিষ্ট করা হয়েছে। বেশিরভাগ ক্ষেত্রে, এই ট্যাগগুলি পরিচিত ccTLD ("টপ-লেভেল ডোমেইন") দুই-অক্ষরের মানগুলিতে সরাসরি ম্যাপ করে। region প্যারামিটার শুধুমাত্র জিওকোডারের ফলাফলকে প্রভাবিত করবে, সম্পূর্ণরূপে সীমাবদ্ধ করবে না। নীচে অঞ্চল কোড বায়াসিং সম্পর্কে আরও তথ্য দেখুন।

জিওকোডিং প্রতিক্রিয়া

জিওকোডারের ফলাফল পুনরুদ্ধার করার পরে চালানোর জন্য জিওকোডিং পরিষেবাটির একটি কলব্যাক পদ্ধতির প্রয়োজন। এই কলব্যাকটি সেই ক্রমে results এবং একটি status কোড ধরে রাখতে দুটি প্যারামিটার পাস করা উচিত।

জিওকোডিং ফলাফল

GeocoderResult বস্তুটি একটি একক জিওকোডিং ফলাফল উপস্থাপন করে। একটি জিওকোড অনুরোধ একাধিক ফলাফল বস্তু ফিরিয়ে দিতে পারে:

results[]: {
 types[]: string,
 formatted_address: string,
 address_components[]: {
   short_name: string,
   long_name: string,
   postcode_localities[]: string,
   types[]: string
 },
 partial_match: boolean,
 place_id: string,
 postcode_localities[]: string,
 geometry: {
   location: LatLng,
   location_type: GeocoderLocationType
   viewport: LatLngBounds,
   bounds: LatLngBounds
 }
}

এই ক্ষেত্রগুলি নীচে ব্যাখ্যা করা হয়েছে:

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

    প্রায়শই এই ঠিকানাটি ডাক ঠিকানার সমতুল্য। উল্লেখ্য যে কিছু দেশ, যেমন ইউনাইটেড কিংডম, লাইসেন্সিং বিধিনিষেধের কারণে সত্যিকারের ডাক ঠিকানা বিতরণের অনুমতি দেয় না।

    ফরম্যাট করা ঠিকানা যৌক্তিকভাবে এক বা একাধিক ঠিকানা উপাদান নিয়ে গঠিত। উদাহরণস্বরূপ, ঠিকানা "111 8th Avenue, New York, NY" নিম্নলিখিত উপাদানগুলি নিয়ে গঠিত: "111" (রাস্তার নম্বর), "8th Avenue" (রুট), "New York" (শহর) এবং "NY" "(মার্কিন রাষ্ট্র)।

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

  • address_components[] হল একটি অ্যারে যেখানে এই ঠিকানার জন্য প্রযোজ্য পৃথক উপাদান রয়েছে।

    প্রতিটি ঠিকানা উপাদান সাধারণত নিম্নলিখিত ক্ষেত্র ধারণ করে:

    • types[] একটি অ্যারে যা ঠিকানা উপাদানের ধরন নির্দেশ করে। সমর্থিত প্রকারের তালিকা দেখুন।
    • long_name হল জিওকোডার দ্বারা প্রত্যাবর্তিত ঠিকানা উপাদানটির সম্পূর্ণ পাঠ্য বিবরণ বা নাম।
    • short_name হল ঠিকানা উপাদানের জন্য একটি সংক্ষিপ্ত পাঠ্য নাম, যদি উপলব্ধ থাকে। উদাহরণস্বরূপ, আলাস্কা রাজ্যের একটি ঠিকানা উপাদানে 2-অক্ষরের ডাক সংক্ষেপ ব্যবহার করে "আলাস্কা" এর একটি long_name এবং "AK" এর একটি short_name থাকতে পারে।

    address_components[] অ্যারে সম্পর্কে নিম্নলিখিত তথ্যগুলি নোট করুন:

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

    নীচে ঠিকানার ধরন এবং ঠিকানা উপাদান প্রকার সম্পর্কে আরও তথ্য দেখুন।

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

    আংশিক মিলগুলি প্রায়শই রাস্তার ঠিকানাগুলির জন্য ঘটে যা আপনার অনুরোধে পাস করা এলাকার মধ্যে বিদ্যমান নেই। আংশিক মিলগুলিও ফেরত দেওয়া হতে পারে যখন একটি অনুরোধ একই এলাকার দুই বা ততোধিক অবস্থানের সাথে মেলে। উদাহরণস্বরূপ, "Hillpar St, Bristol, UK" Henry Street এবং Henrietta Street উভয়ের জন্য একটি আংশিক ম্যাচ ফিরিয়ে দেবে। মনে রাখবেন যে যদি একটি অনুরোধে একটি ভুল বানান ঠিকানা উপাদান অন্তর্ভুক্ত থাকে, জিওকোডিং পরিষেবা একটি বিকল্প ঠিকানা প্রস্তাব করতে পারে। এইভাবে ট্রিগার করা প্রস্তাবনাগুলিকেও একটি আংশিক মিল হিসাবে চিহ্নিত করা হবে৷

  • place_id একটি স্থানের একটি অনন্য শনাক্তকারী, যা অন্যান্য Google API-এর সাথে ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ, আপনি স্থানীয় ব্যবসার বিশদ বিবরণ পেতে Google Places API লাইব্রেরির সাথে place_id ব্যবহার করতে পারেন, যেমন ফোন নম্বর, খোলার সময়, ব্যবহারকারীর পর্যালোচনা এবং আরও অনেক কিছু। স্থান আইডি ওভারভিউ দেখুন.
  • postcode_localities[] হল একটি অ্যারে যা একটি পোস্টাল কোডের মধ্যে থাকা সমস্ত এলাকাকে নির্দেশ করে এবং শুধুমাত্র তখনই উপস্থিত হয় যখন ফলাফলটি একটি পোস্টাল কোড হয় যাতে একাধিক লোকালয়টি থাকে।
  • geometry নিম্নলিখিত তথ্য রয়েছে:

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

    • viewport প্রত্যাবর্তিত ফলাফলের জন্য প্রস্তাবিত ভিউপোর্ট সংরক্ষণ করে।
    • bounds (ঐচ্ছিকভাবে ফেরত) LatLngBounds সংরক্ষণ করে যা সম্পূর্ণরূপে প্রত্যাবর্তিত ফলাফল ধারণ করতে পারে। মনে রাখবেন যে এই সীমাগুলি প্রস্তাবিত ভিউপোর্টের সাথে মেলে না। (উদাহরণস্বরূপ, সান ফ্রান্সিসকো ফ্যারালন দ্বীপপুঞ্জ অন্তর্ভুক্ত করে, যা প্রযুক্তিগতভাবে শহরের অংশ, কিন্তু ভিউপোর্টে ফেরত দেওয়া উচিত নয়।)

ঠিকানাগুলি জিওকোডার ব্রাউজারের পছন্দের ভাষা সেটিং ব্যবহার করে, বা language প্যারামিটার ব্যবহার করে API জাভাস্ক্রিপ্ট লোড করার সময় নির্দিষ্ট ভাষা ব্যবহার করে ফেরত দেবে। (আরো তথ্যের জন্য, স্থানীয়করণ দেখুন। )

ঠিকানার ধরন এবং ঠিকানা উপাদানের প্রকার

GeocoderResult- এর types[] অ্যারে ঠিকানার ধরন নির্দেশ করে। types[] অ্যারে নির্দিষ্ট ঠিকানা উপাদানের ধরন নির্দেশ করতে একটি জিওকোডারঅ্যাড্রেস কম্পোনেন্টের মধ্যেও ফেরত দেওয়া হতে পারে। জিওকোডার দ্বারা প্রত্যাবর্তিত ঠিকানাগুলির একাধিক প্রকার থাকতে পারে; প্রকারগুলিকে ট্যাগ হিসাবে বিবেচনা করা যেতে পারে। উদাহরণস্বরূপ, অনেক শহরকে political এবং locality ধরন দিয়ে ট্যাগ করা হয়েছে।

নিম্নলিখিত প্রকারগুলি ঠিকানার ধরন এবং ঠিকানা উপাদান উভয় প্রকারেই জিওকোডার দ্বারা সমর্থিত এবং ফেরত দেওয়া হয়:

  • street_address একটি সুনির্দিষ্ট রাস্তার ঠিকানা নির্দেশ করে।
  • route একটি নামযুক্ত রুট নির্দেশ করে (যেমন "US 101")।
  • intersection একটি প্রধান ছেদ নির্দেশ করে, সাধারণত দুটি প্রধান রাস্তা।
  • political একটি রাজনৈতিক সত্তা নির্দেশ করে। সাধারণত, এই ধরনের কিছু বেসামরিক প্রশাসনের বহুভুজ নির্দেশ করে।
  • country জাতীয় রাজনৈতিক সত্তাকে নির্দেশ করে এবং এটি সাধারণত জিওকোডার দ্বারা প্রত্যাবর্তিত সর্বোচ্চ অর্ডার প্রকার।
  • administrative_area_level_1 দেশের স্তরের নিচে একটি প্রথম-ক্রম নাগরিক সত্তা নির্দেশ করে। মার্কিন যুক্তরাষ্ট্রের মধ্যে, এই প্রশাসনিক স্তরগুলি হল রাজ্য। সমস্ত জাতি এই প্রশাসনিক স্তর প্রদর্শন করে না। বেশিরভাগ ক্ষেত্রে, প্রশাসনিক_ক্ষেত্র_স্তরের_1 সংক্ষিপ্ত নামগুলি ISO 3166-2 উপবিভাগ এবং অন্যান্য ব্যাপকভাবে প্রচারিত তালিকাগুলির সাথে ঘনিষ্ঠভাবে মিলবে; তবে এটি নিশ্চিত নয় কারণ আমাদের জিওকোডিং ফলাফল বিভিন্ন সংকেত এবং অবস্থান ডেটার উপর ভিত্তি করে।
  • administrative_area_level_2 দেশের স্তরের নিচে একটি দ্বিতীয়-ক্রম নাগরিক সত্তা নির্দেশ করে। মার্কিন যুক্তরাষ্ট্রের মধ্যে, এই প্রশাসনিক স্তরগুলি হল কাউন্টি। সমস্ত জাতি এই প্রশাসনিক স্তর প্রদর্শন করে না।
  • administrative_area_level_3 দেশের স্তরের নীচে একটি তৃতীয়-ক্রম নাগরিক সত্তা নির্দেশ করে৷ এই ধরনের একটি ছোট নাগরিক বিভাগ নির্দেশ করে। সমস্ত জাতি এই প্রশাসনিক স্তর প্রদর্শন করে না।
  • administrative_area_level_4 দেশের স্তরের নিচে একটি চতুর্থ ক্রম নাগরিক সত্তা নির্দেশ করে। এই ধরনের একটি ছোট নাগরিক বিভাগ নির্দেশ করে। সমস্ত জাতি এই প্রশাসনিক স্তর প্রদর্শন করে না।
  • administrative_area_level_5 দেশের স্তরের নিচে একটি পঞ্চম-ক্রম নাগরিক সত্তা নির্দেশ করে। এই ধরনের একটি ছোট নাগরিক বিভাগ নির্দেশ করে। সমস্ত জাতি এই প্রশাসনিক স্তর প্রদর্শন করে না।
  • administrative_area_level_6 দেশের স্তরের নিচে একটি ষষ্ঠ-ক্রম নাগরিক সত্তা নির্দেশ করে। এই ধরনের একটি ছোট নাগরিক বিভাগ নির্দেশ করে। সমস্ত জাতি এই প্রশাসনিক স্তর প্রদর্শন করে না।
  • administrative_area_level_7 দেশের স্তরের নিচে একটি সপ্তম ক্রম নাগরিক সত্তা নির্দেশ করে। এই ধরনের একটি ছোট নাগরিক বিভাগ নির্দেশ করে। সমস্ত জাতি এই প্রশাসনিক স্তর প্রদর্শন করে না।
  • colloquial_area সত্তার জন্য একটি সাধারণভাবে ব্যবহৃত বিকল্প নাম নির্দেশ করে।
  • locality একটি নিগমিত শহর বা শহরের রাজনৈতিক সত্তা নির্দেশ করে।
  • sublocality একটি এলাকার নীচে একটি প্রথম-ক্রম নাগরিক সত্তা নির্দেশ করে। কিছু অবস্থানের জন্য অতিরিক্ত প্রকারের একটি পেতে পারে: sublocality_level_1 থেকে sublocality_level_5 । প্রতিটি উপ-স্থানীয় স্তর একটি নাগরিক সত্তা। বড় সংখ্যা একটি ছোট ভৌগলিক এলাকা নির্দেশ করে।
  • neighborhood একটি নামযুক্ত প্রতিবেশ নির্দেশ করে
  • premise একটি নামযুক্ত অবস্থান নির্দেশ করে, সাধারণত একটি বিল্ডিং বা একটি সাধারণ নাম সহ বিল্ডিংগুলির সংগ্রহ৷
  • subpremise একটি নামযুক্ত অবস্থানের নীচে একটি প্রথম-ক্রম সত্তা নির্দেশ করে, সাধারণত একটি সাধারণ নাম সহ বিল্ডিংগুলির সংগ্রহের মধ্যে একটি একক বিল্ডিং
  • plus_code অক্ষাংশ এবং দ্রাঘিমাংশ থেকে প্রাপ্ত একটি এনকোড করা অবস্থানের রেফারেন্স নির্দেশ করে। প্লাস কোডগুলি এমন জায়গায় রাস্তার ঠিকানাগুলির প্রতিস্থাপন হিসাবে ব্যবহার করা যেতে পারে যেখানে সেগুলি বিদ্যমান নেই (যেখানে বিল্ডিংগুলি সংখ্যাযুক্ত নয় বা রাস্তার নাম দেওয়া হয়নি)। বিস্তারিত জানার জন্য https://plus.codes দেখুন।
  • postal_code একটি পোস্টাল কোড নির্দেশ করে যেটি দেশের মধ্যে ডাক মেইলের ঠিকানা দিতে ব্যবহৃত হয়।
  • natural_feature একটি বিশিষ্ট প্রাকৃতিক বৈশিষ্ট্য নির্দেশ করে।
  • airport একটি বিমানবন্দর নির্দেশ করে।
  • park একটি নামযুক্ত পার্ক নির্দেশ করে।
  • point_of_interest একটি নামকৃত আগ্রহের পয়েন্ট নির্দেশ করে। সাধারণত, এই "POI"গুলি হল বিশিষ্ট স্থানীয় সত্ত্বা যা "এম্পায়ার স্টেট বিল্ডিং" বা "আইফেল টাওয়ার" এর মতো অন্য বিভাগে সহজে ফিট করে না।

প্রকারের একটি খালি তালিকা নির্দেশ করে যে নির্দিষ্ট ঠিকানা উপাদানের জন্য কোন পরিচিত প্রকার নেই, উদাহরণস্বরূপ, ফ্রান্সে Lieu-dit।

উপরোক্ত ছাড়াও, ঠিকানা উপাদান নীচের প্রকার অন্তর্ভুক্ত হতে পারে.

দ্রষ্টব্য: এই তালিকাটি সম্পূর্ণ নয়, এবং পরিবর্তন সাপেক্ষে।

  • floor একটি বিল্ডিং ঠিকানার মেঝে নির্দেশ করে।
  • establishment সাধারণত এমন একটি স্থান নির্দেশ করে যা এখনও শ্রেণীবদ্ধ করা হয়নি।
  • landmark একটি কাছাকাছি স্থান নির্দেশ করে যা একটি রেফারেন্স হিসাবে ব্যবহৃত হয়, নেভিগেশনে সহায়তা করার জন্য।
  • point_of_interest একটি নামকৃত আগ্রহের পয়েন্ট নির্দেশ করে।
  • parking একটি পার্কিং লট বা পার্কিং কাঠামো নির্দেশ করে।
  • post_box একটি নির্দিষ্ট পোস্টাল বক্স নির্দেশ করে।
  • postal_town এলাকার একটি গ্রুপিং নির্দেশ করে, যেমন locality এবং sublocality , কিছু দেশে মেইলিং ঠিকানার জন্য ব্যবহৃত হয়।
  • room একটি বিল্ডিং ঠিকানার ঘর নির্দেশ করে।
  • street_number সঠিক রাস্তার নম্বর নির্দেশ করে।
  • bus_station , train_station এবং transit_station একটি বাস, ট্রেন বা পাবলিক ট্রানজিট স্টপের অবস্থান নির্দেশ করে।

স্ট্যাটাস কোড

status কোড নিম্নলিখিত মানগুলির মধ্যে একটি প্রদান করতে পারে:

  • "OK" নির্দেশ করে যে কোন ত্রুটি ঘটেনি; ঠিকানাটি সফলভাবে পার্স করা হয়েছে এবং অন্তত একটি জিওকোড ফেরত দেওয়া হয়েছে।
  • "ZERO_RESULTS" ইঙ্গিত করে যে জিওকোড সফল হয়েছে কিন্তু কোনো ফলাফল দেয়নি৷ এটি ঘটতে পারে যদি জিওকোডারটি একটি অস্তিত্বহীন address পাস করা হয়।
  • "OVER_QUERY_LIMIT" নির্দেশ করে যে আপনি আপনার কোটা অতিক্রম করেছেন৷
  • "REQUEST_DENIED" নির্দেশ করে যে আপনার অনুরোধ প্রত্যাখ্যান করা হয়েছে৷ ওয়েব পৃষ্ঠাটি জিওকোডার ব্যবহার করার অনুমতি নেই।
  • "INVALID_REQUEST" সাধারণত নির্দেশ করে যে কোয়েরি ( address , components বা latlng ) অনুপস্থিত৷
  • "UNKNOWN_ERROR" নির্দেশ করে যে সার্ভার ত্রুটির কারণে অনুরোধটি প্রক্রিয়া করা যায়নি৷ আপনি আবার চেষ্টা করলে অনুরোধ সফল হতে পারে।
  • "ERROR" নির্দেশ করে যে অনুরোধের সময় শেষ হয়েছে বা Google সার্ভারের সাথে যোগাযোগ করতে সমস্যা হয়েছে৷ আপনি আবার চেষ্টা করলে অনুরোধ সফল হতে পারে।

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

  var geocoder;
  var map;
  function initialize() {
    geocoder = new google.maps.Geocoder();
    var latlng = new google.maps.LatLng(-34.397, 150.644);
    var mapOptions = {
      zoom: 8,
      center: latlng
    }
    map = new google.maps.Map(document.getElementById('map'), mapOptions);
  }

  function codeAddress() {
    var address = document.getElementById('address').value;
    geocoder.geocode( { 'address': address}, function(results, status) {
      if (status == 'OK') {
        map.setCenter(results[0].geometry.location);
        var marker = new google.maps.Marker({
            map: map,
            position: results[0].geometry.location
        });
      } else {
        alert('Geocode was not successful for the following reason: ' + status);
      }
    });
  }

<body onload="initialize()">
 <div id="map" style="width: 320px; height: 480px;"></div>
  <div>
    <input id="address" type="textbox" value="Sydney, NSW">
    <input type="button" value="Encode" onclick="codeAddress()">
  </div>
</body>

উদাহরণ দেখুন।

ভিউপোর্ট বায়াসিং

আপনি একটি প্রদত্ত ভিউপোর্টের মধ্যে ফলাফল পছন্দ করতে জিওকোডিং পরিষেবাকে নির্দেশ দিতে পারেন (একটি বাউন্ডিং বক্স হিসাবে প্রকাশ করা হয়েছে)৷ আপনি এই ভিউপোর্টের সীমানা নির্ধারণ করতে GeocoderRequest অবজেক্টের মধ্যে bounds প্যারামিটার সেট করে তা করেন। মনে রাখবেন যে বায়াসিং শুধুমাত্র সীমার মধ্যে ফলাফল পছন্দ করে ; যদি আরও প্রাসঙ্গিক ফলাফল এই সীমার বাইরে বিদ্যমান থাকে, তাহলে সেগুলি অন্তর্ভুক্ত করা যেতে পারে।

উদাহরণস্বরূপ, "Winnetka" এর জন্য একটি জিওকোড সাধারণত শিকাগোর এই শহরতলির ফেরত দেয়:

{
  "types":["locality","political"],
  "formatted_address":"Winnetka, IL, USA",
  "address_components":[{
    "long_name":"Winnetka",
    "short_name":"Winnetka",
    "types":["locality","political"]
  },{
    "long_name":"Illinois",
    "short_name":"IL",
    "types":["administrative_area_level_1","political"]
  },{
    "long_name":"United States",
    "short_name":"US",
    "types":["country","political"]
  }],
  "geometry":{
    "location":[ -87.7417070, 42.1083080],
    "location_type":"APPROXIMATE"
  },
  "place_id": "ChIJW8Va5TnED4gRY91Ng47qy3Q"
}

যাইহোক, লস অ্যাঞ্জেলেসের সান ফার্নান্দো ভ্যালির জন্য একটি বাউন্ডিং বক্স সংজ্ঞায়িত করার জন্য একটি bounds প্যারামিটার নির্দিষ্ট করার ফলে এই জিওকোডটি সেই অবস্থানে "উইনেটকা" নামক আশেপাশে ফিরে আসে:

{
  "types":["sublocality","political"],
  "formatted_address":"Winnetka, California, USA",
  "address_components":[{
    "long_name":"Winnetka",
    "short_name":"Winnetka",
    "types":["sublocality","political"]
  },{
    "long_name":"Los Angeles",
    "short_name":"Los Angeles",
    "types":["administrative_area_level_3","political"]
  },{
    "long_name":"Los Angeles",
    "short_name":"Los Angeles",
    "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"]
  }],
  "geometry":{
    "location": [34.213171,-118.571022],
    "location_type":"APPROXIMATE"
  },
  "place_id": "ChIJ0fd4S_KbwoAR2hRDrsr3HmQ"
}

অঞ্চল কোড বায়াসিং

আপনি region প্যারামিটার ব্যবহার করে স্পষ্টভাবে একটি নির্দিষ্ট অঞ্চলে পক্ষপাতদুষ্ট ফলাফল ফেরাতে জিওকোডিং পরিষেবা সেট করতে পারেন। এই প্যারামিটারটি একটি অঞ্চল কোড নেয়, একটি দুই-অক্ষর (অ-সংখ্যাসূচক) ইউনিকোড অঞ্চল সাবট্যাগ হিসাবে নির্দিষ্ট করা হয়। এই ট্যাগগুলি সরাসরি পরিচিত ccTLD ("টপ-লেভেল ডোমেইন") দুই-অক্ষরের মান যেমন "co.uk"-তে "uk"-তে ম্যাপ করে। কিছু ক্ষেত্রে, region ট্যাগ ISO-3166-1 কোডগুলিকেও সমর্থন করে, যা কখনও কখনও ccTLD মানগুলির থেকে আলাদা হয় (উদাহরণস্বরূপ "গ্রেট ব্রিটেন" এর জন্য "GB")।

region পরামিতি ব্যবহার করার সময়:

  • শুধুমাত্র একটি দেশ বা অঞ্চল নির্দিষ্ট করুন। একাধিক মান উপেক্ষা করা হয় এবং এর ফলে একটি ব্যর্থ অনুরোধ হতে পারে।
  • শুধুমাত্র দুই-অক্ষরের অঞ্চল সাবট্যাগ ব্যবহার করুন (ইউনিকোড CLDR ফর্ম্যাট)। অন্য সব ইনপুট ত্রুটির ফলে হবে.
  • শুধুমাত্র Google Maps প্ল্যাটফর্ম কভারেজ বিবরণে তালিকাভুক্ত দেশ এবং অঞ্চল সমর্থিত।

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

উদাহরণস্বরূপ, "Toledo" এর জন্য একটি জিওকোড এই ফলাফলটি প্রদান করে, যেহেতু জিওকোডিং পরিষেবার জন্য ডিফল্ট ডোমেন মার্কিন যুক্তরাষ্ট্রে সেট করা আছে:

{
  "types":["locality","political"],
  "formatted_address":"Toledo, OH, USA",
  "address_components":[{
    "long_name":"Toledo",
    "short_name":"Toledo",
    "types":["locality","political"]
  },{
    "long_name":"Ohio",
    "short_name":"OH",
    "types":["administrative_area_level_1","political"]
  },{
    "long_name":"United States",
    "short_name":"US",
    "types":["country","political"]
  }],
  "place_id": "ChIJeU4e_C2HO4gRRcM6RZ_IPHw"
}

"Toledo"-এর জন্য একটি জিওকোড 'es' (স্পেন) তে সেট করা region ক্ষেত্রটি স্প্যানিশ শহরকে ফিরিয়ে দেবে:

{
  "types":["locality","political"],
  "formatted_address":"Toledo, España",
  "address_components":[{
    "long_name":"Toledo",
    "short_name":"Toledo",
    "types":["locality","political"]
  },{
    "long_name":"Toledo",
    "short_name":"TO",
    "types":["administrative_area_level_2","political"]
  },{
    "long_name":"Castilla-La Mancha",
    "short_name":"CM",
    "types":["administrative_area_level_1","political"]
  },{
    "long_name":"España",
    "short_name":"ES",
    "types":["country","political"]
  }],
  "place_id": "ChIJ8f21C60Lag0R_q11auhbf8Y"
}

উপাদান ফিল্টারিং

আপনি একটি উপাদান ফিল্টার ব্যবহার করে একটি নির্দিষ্ট এলাকায় সীমাবদ্ধ ঠিকানা ফলাফল ফেরত দিতে জিওকোডিং পরিষেবা সেট করতে পারেন। componentRestrictions প্যারামিটারে ফিল্টারটি নির্দিষ্ট করুন। ফিল্টার মান অন্যান্য জিওকোডিং অনুরোধের মতো বানান সংশোধন এবং আংশিক মিলের একই পদ্ধতি সমর্থন করে।

জিওকোডার শুধুমাত্র সেই ফলাফল প্রদান করে যা সমস্ত উপাদান ফিল্টারের সাথে মেলে। অর্থাৎ, এটি একটি AND হিসাবে ফিল্টার স্পেসিফিকেশন মূল্যায়ন করে, একটি OR নয়।

একটি উপাদান ফিল্টার নিম্নলিখিত এক বা একাধিক আইটেম নিয়ে গঠিত:

  • route একটি রুটের লম্বা বা ছোট নামের সাথে মেলে।
  • locality স্থানীয়তা এবং উপ-অঞ্চলের প্রকারের সাথে মেলে।
  • administrativeArea এলাকা প্রশাসনিক এলাকার সমস্ত স্তরের সাথে মেলে।
  • postalCode পোস্টাল কোড এবং পোস্টাল কোড উপসর্গের সাথে মেলে।
  • country একটি দেশের নাম বা দুটি অক্ষরের ISO 3166-1 দেশের কোডের সাথে মেলে। দ্রষ্টব্য: API দেশগুলিকে সংজ্ঞায়িত করার জন্য ISO মান অনুসরণ করে এবং দেশের সংশ্লিষ্ট ISO কোড ব্যবহার করার সময় ফিল্টারিং সবচেয়ে ভাল কাজ করে।

নিম্নলিখিত উদাহরণ country এবং postalCode দ্বারা ফিল্টার করার জন্য componentRestrictions প্যারামিটার ব্যবহার করে দেখায়:

function codeAddress() {
geocoder.geocode({
  componentRestrictions: {
    country: 'AU',
    postalCode: '2000'
  }
}, function(results, status) {
  if (status == 'OK') {
    map.setCenter(results[0].geometry.location);
    var marker = new google.maps.Marker({
      map: map,
      position: results[0].geometry.location
    });
  } else {
    window.alert('Geocode was not successful for the following reason: ' + status);
  }
});
}

বিপরীত জিওকোডিং (অ্যাড্রেস লুকআপ)

জিওকোডিং শব্দটি সাধারণত একটি মানচিত্রের একটি অবস্থানে একটি মানব-পাঠযোগ্য ঠিকানা অনুবাদ করাকে বোঝায়। কথোপকথন করার প্রক্রিয়া, মানচিত্রের একটি অবস্থানকে মানব-পাঠযোগ্য ঠিকানায় অনুবাদ করে, এটি বিপরীত জিওকোডিং নামে পরিচিত।

একটি পাঠ্য address সরবরাহ করার পরিবর্তে, location প্যারামিটারে একটি কমা দ্বারা পৃথক অক্ষাংশ/দ্রাঘিমাংশ জুড়ি সরবরাহ করুন৷

নিম্নলিখিত উদাহরণটি একটি অক্ষাংশ/দ্রাঘিমাংশের মানকে জিওকোড করে এবং সেই অবস্থানে মানচিত্রটিকে কেন্দ্র করে, ফর্ম্যাট করা ঠিকানা সহ একটি তথ্য উইন্ডো নিয়ে আসে:

টাইপস্ক্রিপ্ট

function initMap(): void {
  const map = new google.maps.Map(
    document.getElementById("map") as HTMLElement,
    {
      zoom: 8,
      center: { lat: 40.731, lng: -73.997 },
    }
  );
  const geocoder = new google.maps.Geocoder();
  const infowindow = new google.maps.InfoWindow();

  (document.getElementById("submit") as HTMLElement).addEventListener(
    "click",
    () => {
      geocodeLatLng(geocoder, map, infowindow);
    }
  );
}

function geocodeLatLng(
  geocoder: google.maps.Geocoder,
  map: google.maps.Map,
  infowindow: google.maps.InfoWindow
) {
  const input = (document.getElementById("latlng") as HTMLInputElement).value;
  const latlngStr = input.split(",", 2);
  const latlng = {
    lat: parseFloat(latlngStr[0]),
    lng: parseFloat(latlngStr[1]),
  };

  geocoder
    .geocode({ location: latlng })
    .then((response) => {
      if (response.results[0]) {
        map.setZoom(11);

        const marker = new google.maps.Marker({
          position: latlng,
          map: map,
        });

        infowindow.setContent(response.results[0].formatted_address);
        infowindow.open(map, marker);
      } else {
        window.alert("No results found");
      }
    })
    .catch((e) => window.alert("Geocoder failed due to: " + e));
}

declare global {
  interface Window {
    initMap: () => void;
  }
}
window.initMap = initMap;

জাভাস্ক্রিপ্ট

function initMap() {
  const map = new google.maps.Map(document.getElementById("map"), {
    zoom: 8,
    center: { lat: 40.731, lng: -73.997 },
  });
  const geocoder = new google.maps.Geocoder();
  const infowindow = new google.maps.InfoWindow();

  document.getElementById("submit").addEventListener("click", () => {
    geocodeLatLng(geocoder, map, infowindow);
  });
}

function geocodeLatLng(geocoder, map, infowindow) {
  const input = document.getElementById("latlng").value;
  const latlngStr = input.split(",", 2);
  const latlng = {
    lat: parseFloat(latlngStr[0]),
    lng: parseFloat(latlngStr[1]),
  };

  geocoder
    .geocode({ location: latlng })
    .then((response) => {
      if (response.results[0]) {
        map.setZoom(11);

        const marker = new google.maps.Marker({
          position: latlng,
          map: map,
        });

        infowindow.setContent(response.results[0].formatted_address);
        infowindow.open(map, marker);
      } else {
        window.alert("No results found");
      }
    })
    .catch((e) => window.alert("Geocoder failed due to: " + e));
}

window.initMap = initMap;
উদাহরণ দেখুন

নমুনা চেষ্টা করুন

উল্লেখ্য যে পূর্ববর্তী উদাহরণে আমরা results[0] । বিপরীত জিওকোডার প্রায়ই একাধিক ফলাফল প্রদান করে। জিওকোডেড ঠিকানাগুলি কেবল ডাক ঠিকানা নয়, ভৌগলিকভাবে একটি অবস্থানের নাম দেওয়ার যে কোনও উপায়। উদাহরণ স্বরূপ, শিকাগো শহরের একটি পয়েন্ট জিওকোড করার সময়, জিওকোড করা পয়েন্টটিকে রাস্তার ঠিকানা হিসাবে, শহর (শিকাগো), এর রাজ্য (ইলিনয়) বা একটি দেশ (মার্কিন যুক্তরাষ্ট্র) হিসাবে লেবেল করা হতে পারে। সবগুলোই জিওকোডারের ঠিকানা। বিপরীত জিওকোডার এই সমস্ত ফলাফল প্রদান করে।

বিপরীত জিওকোডার রাজনৈতিক সত্তা (দেশ, প্রদেশ, শহর এবং পাড়া), রাস্তার ঠিকানা এবং পোস্টাল কোডের সাথে মেলে।

এখানে ঠিকানাগুলির তালিকার একটি উদাহরণ রয়েছে যা উপরের ক্যোয়ারীটি ফিরে আসতে পারে:

results[0].formatted_address: "277 Bedford Ave, Brooklyn, NY 11211, USA"
results[1].formatted_address: "Grand St/Bedford Av, Brooklyn, NY 11211, USA"
results[2].formatted_address: "Williamsburg, Brooklyn, NY, USA"
results[3].formatted_address: "Brooklyn, NY, USA"
results[4].formatted_address: "New York, NY, USA"
results[5].formatted_address: "Brooklyn, NY 11211, USA"
results[6].formatted_address: "Kings County, NY, USA"
results[7].formatted_address: "New York-Northern New Jersey-Long Island, NY-NJ-PA, USA"
results[8].formatted_address: "New York Metropolitan Area, USA"
results[9].formatted_address: "New York, USA"

সর্বোত্তম থেকে সর্বনিম্ন ম্যাচের ক্রমে ঠিকানাগুলি ফেরত দেওয়া হয়। সাধারণত, আরও সঠিক ঠিকানাই সবচেয়ে বিশিষ্ট ফলাফল, যেমনটি এই ক্ষেত্রে। মনে রাখবেন যে আমরা বিভিন্ন ধরনের ঠিকানা ফেরত দিই, সবচেয়ে নির্দিষ্ট রাস্তার ঠিকানা থেকে কম নির্দিষ্ট রাজনৈতিক সত্ত্বা যেমন আশেপাশের, শহর, কাউন্টি, রাজ্য, ইত্যাদি। আপনি যদি আরও সাধারণ ঠিকানার সাথে মিল রাখতে চান তবে আপনি results[].types ক্ষেত্র.

দ্রষ্টব্য: বিপরীত জিওকোডিং একটি সঠিক বিজ্ঞান নয়। জিওকোডার একটি নির্দিষ্ট সহনশীলতার মধ্যে নিকটতম ঠিকানাযোগ্য অবস্থান খুঁজে বের করার চেষ্টা করবে।

একটি স্থান আইডি জন্য একটি ঠিকানা পুনরুদ্ধার করা হচ্ছে

একটি প্রদত্ত স্থান আইডির ঠিকানা খুঁজে পেতে একটি placeId সরবরাহ করুন৷ স্থান আইডি একটি অনন্য শনাক্তকারী যা অন্যান্য Google API-এর সাথে ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ, আপনি একটি স্ন্যাপড পয়েন্টের ঠিকানা পেতে Roads API দ্বারা প্রত্যাবর্তিত placeId সরবরাহ করতে পারেন। স্থান আইডি সম্পর্কে আরও তথ্যের জন্য, স্থান আইডি ওভারভিউ দেখুন।

আপনি যখন একটি placeId সরবরাহ করেন, অনুরোধে নিম্নলিখিত ক্ষেত্রগুলির মধ্যে কোনোটি থাকতে পারে না:

  • address
  • latLng
  • location
  • componentRestrictions

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

টাইপস্ক্রিপ্ট

// Initialize the map.
function initMap(): void {
  const map = new google.maps.Map(
    document.getElementById("map") as HTMLElement,
    {
      zoom: 8,
      center: { lat: 40.72, lng: -73.96 },
    }
  );
  const geocoder = new google.maps.Geocoder();
  const infowindow = new google.maps.InfoWindow();

  (document.getElementById("submit") as HTMLElement).addEventListener(
    "click",
    () => {
      geocodePlaceId(geocoder, map, infowindow);
    }
  );
}

// This function is called when the user clicks the UI button requesting
// a geocode of a place ID.
function geocodePlaceId(
  geocoder: google.maps.Geocoder,
  map: google.maps.Map,
  infowindow: google.maps.InfoWindow
) {
  const placeId = (document.getElementById("place-id") as HTMLInputElement)
    .value;

  geocoder
    .geocode({ placeId: placeId })
    .then(({ results }) => {
      if (results[0]) {
        map.setZoom(11);
        map.setCenter(results[0].geometry.location);

        const marker = new google.maps.Marker({
          map,
          position: results[0].geometry.location,
        });

        infowindow.setContent(results[0].formatted_address);
        infowindow.open(map, marker);
      } else {
        window.alert("No results found");
      }
    })
    .catch((e) => window.alert("Geocoder failed due to: " + e));
}

declare global {
  interface Window {
    initMap: () => void;
  }
}
window.initMap = initMap;

জাভাস্ক্রিপ্ট

// Initialize the map.
function initMap() {
  const map = new google.maps.Map(document.getElementById("map"), {
    zoom: 8,
    center: { lat: 40.72, lng: -73.96 },
  });
  const geocoder = new google.maps.Geocoder();
  const infowindow = new google.maps.InfoWindow();

  document.getElementById("submit").addEventListener("click", () => {
    geocodePlaceId(geocoder, map, infowindow);
  });
}

// This function is called when the user clicks the UI button requesting
// a geocode of a place ID.
function geocodePlaceId(geocoder, map, infowindow) {
  const placeId = document.getElementById("place-id").value;

  geocoder
    .geocode({ placeId: placeId })
    .then(({ results }) => {
      if (results[0]) {
        map.setZoom(11);
        map.setCenter(results[0].geometry.location);

        const marker = new google.maps.Marker({
          map,
          position: results[0].geometry.location,
        });

        infowindow.setContent(results[0].formatted_address);
        infowindow.open(map, marker);
      } else {
        window.alert("No results found");
      }
    })
    .catch((e) => window.alert("Geocoder failed due to: " + e));
}

window.initMap = initMap;
উদাহরণ দেখুন

নমুনা চেষ্টা করুন