সংক্ষিপ্ত বিবরণ
জিওকোডিং হল ঠিকানাগুলিকে (যেমন "১৬০০ অ্যাম্ফিথিয়েটার পার্কওয়ে, মাউন্টেন ভিউ, ক্যালিফোর্নিয়া") ভৌগোলিক স্থানাঙ্কে (যেমন অক্ষাংশ ৩৭.৪২৩০২১ এবং দ্রাঘিমাংশ -১২২.০৮৩৭৩৯) রূপান্তর করার প্রক্রিয়া, যা আপনি মার্কার স্থাপন করতে বা মানচিত্রের অবস্থান নির্ধারণ করতে ব্যবহার করতে পারেন।
বিপরীত জিওকোডিং হল ভৌগোলিক স্থানাঙ্কগুলিকে মানুষের পাঠযোগ্য ঠিকানায় রূপান্তর করার প্রক্রিয়া ( বিপরীত জিওকোডিং (ঠিকানা সন্ধান) দেখুন)।
আপনি একটি নির্দিষ্ট স্থানের আইডির ঠিকানা খুঁজে পেতে জিওকোডার ব্যবহার করতে পারেন।
Maps JavaScript API ব্যবহারকারীর ইনপুট থেকে গতিশীলভাবে জিওকোডিং এবং বিপরীত জিওকোডিং করার জন্য একটি জিওকোডার ক্লাস প্রদান করে। এর পরিবর্তে যদি আপনি স্থির, পরিচিত ঠিকানাগুলি জিওকোড করতে চান, তাহলে জিওকোডিং ওয়েব পরিষেবাটি দেখুন।
শুরু করুন
ম্যাপস জাভাস্ক্রিপ্ট এপিআই-তে জিওকোডিং পরিষেবা ব্যবহার করার আগে, প্রথমে নিশ্চিত করুন যে জিওকোডিং এপিআই গুগল ক্লাউড কনসোলে সক্রিয় আছে, একই প্রকল্পে আপনি ম্যাপস জাভাস্ক্রিপ্ট এপিআই-এর জন্য সেট আপ করেছেন।
আপনার সক্রিয় API গুলির তালিকা দেখতে:
- গুগল ক্লাউড কনসোলে যান।
- "একটি প্রকল্প নির্বাচন করুন" বোতামে ক্লিক করুন, তারপর Maps JavaScript API-এর জন্য আপনি যে প্রকল্পটি সেট আপ করেছেন সেটি নির্বাচন করুন এবং " খুলুন" বোতামে ক্লিক করুন।
- ড্যাশবোর্ডে API-এর তালিকা থেকে, Geocoding API খুঁজুন।
- যদি আপনি তালিকায় API দেখতে পান, তাহলে আপনার সবকিছু ঠিক আছে। যদি API তালিকাভুক্ত না থাকে, তাহলে এটি সক্রিয় করুন:
- পৃষ্ঠার শীর্ষে, লাইব্রেরি ট্যাবটি প্রদর্শন করতে ENABLE API নির্বাচন করুন। বিকল্পভাবে, বাম দিকের মেনু থেকে, লাইব্রেরি নির্বাচন করুন।
- Search for Geocoding API , then select it from the results list.
- ENABLE নির্বাচন করুন। প্রক্রিয়াটি শেষ হলে, ড্যাশবোর্ডে API-এর তালিকায় Geocoding API প্রদর্শিত হবে।
মূল্য নির্ধারণ এবং নীতিমালা
মূল্য নির্ধারণ
জাভাস্ক্রিপ্ট জিওকোডিং পরিষেবার মূল্য এবং ব্যবহারের নীতি সম্পর্কে জানতে, জিওকোডিং API-এর ব্যবহার এবং বিলিং দেখুন।
নীতিমালা
জিওকোডিং পরিষেবার আপনার ব্যবহার অবশ্যই জিওকোডিং API-এর নীতিমালা অনুসারে হতে হবে।
জিওকোডিং অনুরোধ
জিওকোডিং পরিষেবা অ্যাক্সেস করা অ্যাসিঙ্ক্রোনাস, কারণ গুগল ম্যাপস এপিআই-কে একটি বহিরাগত সার্ভারে কল করতে হয়। সেই কারণে, অনুরোধটি সম্পন্ন হওয়ার পরে কার্যকর করার জন্য আপনাকে একটি কলব্যাক পদ্ধতি পাস করতে হবে। এই কলব্যাক পদ্ধতি ফলাফল(গুলি) প্রক্রিয়া করে। মনে রাখবেন যে জিওকোডার একাধিক ফলাফল দিতে পারে।
আপনি google.maps.Geocoder কনস্ট্রাক্টর অবজেক্ট ব্যবহার করে আপনার কোডের মধ্যে Google Maps API জিওকোডিং পরিষেবা অ্যাক্সেস করতে পারেন। Geocoder.geocode() পদ্ধতিটি জিওকোডিং পরিষেবাতে একটি অনুরোধ শুরু করে, এটিকে একটি GeocoderRequest অবজেক্ট আক্ষরিকভাবে প্রেরণ করে যাতে ইনপুট পদ এবং প্রতিক্রিয়া প্রাপ্তির পরে কার্যকর করার জন্য একটি কলব্যাক পদ্ধতি থাকে।
GeocoderRequest অবজেক্ট লিটারেলে নিম্নলিখিত ক্ষেত্রগুলি রয়েছে:
{ address: string, location: LatLng, placeId: string, bounds: LatLngBounds, componentRestrictions: GeocoderComponentRestrictions, region: string }
প্রয়োজনীয় প্যারামিটার: আপনাকে নিম্নলিখিত ক্ষেত্রগুলির মধ্যে একটি এবং কেবলমাত্র একটি প্রদান করতে হবে:
-
address— যে ঠিকানাটি আপনি জিওকোড করতে চান।
অথবা
location—LatLng(অথবাLatLngLiteral) যার জন্য আপনি সবচেয়ে কাছের, মানুষের পঠনযোগ্য ঠিকানা পেতে চান। জিওকোডার একটি বিপরীত জিওকোড সম্পাদন করে। আরও তথ্যের জন্য বিপরীত জিওকোডিং দেখুন।
অথবা
placeId— যে স্থানের জন্য আপনি সবচেয়ে কাছের, মানুষের পঠনযোগ্য ঠিকানা পেতে চান তার স্থান আইডি। স্থান আইডির জন্য ঠিকানা পুনরুদ্ধার সম্পর্কে আরও দেখুন।
ঐচ্ছিক পরামিতি:
-
bounds—LatLngBoundsযার মধ্যে জিওকোড ফলাফলগুলিকে আরও স্পষ্টভাবে বায়াস করা যায়।boundsপ্যারামিটারটি কেবল জিওকোডার থেকে ফলাফলগুলিকে প্রভাবিত করবে, সম্পূর্ণরূপে সীমাবদ্ধ করবে না। ভিউপোর্ট বায়াসিং সম্পর্কে আরও তথ্য নীচে দেখুন। -
componentRestrictions— একটি নির্দিষ্ট এলাকায় ফলাফল সীমাবদ্ধ করতে ব্যবহৃত হয়। কম্পোনেন্ট ফিল্টারিং সম্পর্কে আরও তথ্য নীচে দেখুন। -
region— অঞ্চল কোড, যা দুই-অক্ষরের (অ-সংখ্যাসূচক) ইউনিকোড অঞ্চল সাবট্যাগ হিসাবে নির্দিষ্ট করা হয়েছে। বেশিরভাগ ক্ষেত্রে, এই ট্যাগগুলি সরাসরি পরিচিত ccTLD ("শীর্ষ-স্তরের ডোমেন") দুই-অক্ষরের মানগুলিতে ম্যাপ করে।regionপ্যারামিটারটি কেবল জিওকোডার থেকে প্রাপ্ত ফলাফলগুলিকে প্রভাবিত করবে, সম্পূর্ণরূপে সীমাবদ্ধ করবে না। অঞ্চল কোড পক্ষপাত সম্পর্কে আরও তথ্য নীচে দেখুন। -
extraComputations— এই প্যারামিটারের জন্য একমাত্র অনুমোদিত মান হলADDRESS_DESCRIPTORS। আরও বিস্তারিত জানার জন্য ঠিকানা বর্ণনাকারী দেখুন। -
fulfillOnZeroResults— প্রতিক্রিয়ায় ZERO_RESULT স্ট্যাটাসে প্রতিশ্রুতি পূরণ করুন। এটি পছন্দসই হতে পারে কারণ শূন্য জিওকোডিং ফলাফলের পরেও অতিরিক্ত প্রতিক্রিয়া স্তর ক্ষেত্রগুলি ফিরে আসতে পারে। আরও বিস্তারিত জানার জন্য শূন্য ফলাফলগুলিতে পূরণ দেখুন।
জিওকোডিং প্রতিক্রিয়া
জিওকোডারের ফলাফল পুনরুদ্ধারের পরে জিওকোডিং পরিষেবার জন্য একটি কলব্যাক পদ্ধতি কার্যকর করা প্রয়োজন। এই কলব্যাকটি 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" (মার্কিন রাজ্য)।
ফরম্যাটেড ঠিকানাটি প্রোগ্রাম্যাটিকভাবে পার্স করবেন না। এর পরিবর্তে আপনার পৃথক ঠিকানা উপাদানগুলি ব্যবহার করা উচিত, যা API প্রতিক্রিয়াতে ফরম্যাটেড ঠিকানা ক্ষেত্র ছাড়াও অন্তর্ভুক্ত থাকে।
address_components[]হল একটি অ্যারে যাতে এই ঠিকানার জন্য প্রযোজ্য পৃথক উপাদান রয়েছে।প্রতিটি ঠিকানা উপাদানে সাধারণত নিম্নলিখিত ক্ষেত্রগুলি থাকে:
-
types[]হল একটি অ্যারে যা ঠিকানা উপাদানের ধরণ নির্দেশ করে। সমর্থিত প্রকারের তালিকা দেখুন। -
long_nameহলো জিওকোডার দ্বারা ফেরত দেওয়া ঠিকানা উপাদানের পূর্ণাঙ্গ বিবরণ বা নাম। -
short_nameহল ঠিকানা উপাদানের জন্য একটি সংক্ষিপ্ত পাঠ্য নাম, যদি পাওয়া যায়। উদাহরণস্বরূপ, আলাস্কা রাজ্যের জন্য একটি ঠিকানা উপাদানের 2-অক্ষরের পোস্টাল সংক্ষেপণ ব্যবহার করে "আলাস্কা" এর একটিlong_nameএবং "AK" এর একটিshort_nameথাকতে পারে।
address_components[]অ্যারে সম্পর্কে নিম্নলিখিত তথ্যগুলি লক্ষ্য করুন:- The array of address components may contain more components than the
formatted_address. - অ্যারেতে অবশ্যই সমস্ত রাজনৈতিক সত্তা অন্তর্ভুক্ত থাকে না যেখানে একটি ঠিকানা থাকে,
formatted_addressএ অন্তর্ভুক্ত থাকা ব্যতীত। একটি নির্দিষ্ট ঠিকানা ধারণকারী সমস্ত রাজনৈতিক সত্তা পুনরুদ্ধার করতে, আপনার বিপরীত জিওকোডিং ব্যবহার করা উচিত, অনুরোধের প্যারামিটার হিসাবে ঠিকানার অক্ষাংশ/দ্রাঘিমাংশ অতিক্রম করা উচিত। - বিভিন্ন অনুরোধের মধ্যে প্রতিক্রিয়ার ফর্ম্যাট একই থাকবে এমন নিশ্চয়তা নেই। বিশেষ করে, অনুরোধ করা ঠিকানার উপর ভিত্তি করে
address_componentsএর সংখ্যা পরিবর্তিত হয় এবং একই ঠিকানার জন্য সময়ের সাথে সাথে পরিবর্তিত হতে পারে। একটি উপাদান অ্যারেতে অবস্থান পরিবর্তন করতে পারে। উপাদানের ধরণ পরিবর্তন হতে পারে। পরবর্তী প্রতিক্রিয়ায় একটি নির্দিষ্ট উপাদান অনুপস্থিত থাকতে পারে।
ঠিকানার ধরণ এবং ঠিকানার উপাদানের ধরণ সম্পর্কে আরও তথ্য নীচে দেখুন।
-
partial_matchইঙ্গিত করে যে জিওকোডারটি মূল অনুরোধের সাথে সঠিক মিল খুঁজে পায়নি, যদিও এটি অনুরোধকৃত ঠিকানার কিছু অংশ মেলাতে সক্ষম হয়েছিল। আপনি ভুল বানান এবং/অথবা অসম্পূর্ণ ঠিকানার জন্য মূল অনুরোধটি পরীক্ষা করতে চাইতে পারেন।আপনার অনুরোধে পাস করা এলাকার মধ্যে যে রাস্তার ঠিকানাগুলি বিদ্যমান নেই সেগুলির জন্য প্রায়শই আংশিক মিল দেখা যায়। একই এলাকার দুই বা ততোধিক অবস্থানের সাথে একটি অনুরোধের মিল থাকলে আংশিক মিলও ফেরত পাঠানো যেতে পারে। উদাহরণস্বরূপ, "হিলপার স্ট্রিট, ব্রিস্টল, যুক্তরাজ্য" হেনরি স্ট্রিট এবং হেনরিটা স্ট্রিট উভয়ের জন্যই একটি আংশিক মিল ফেরত দেবে। মনে রাখবেন যে যদি কোনও অনুরোধে ভুল বানানযুক্ত ঠিকানা উপাদান থাকে, তাহলে জিওকোডিং পরিষেবা একটি বিকল্প ঠিকানার পরামর্শ দিতে পারে। এইভাবে ট্রিগার করা পরামর্শগুলিকেও আংশিক মিল হিসেবে চিহ্নিত করা হবে।
-
place_idহল একটি স্থানের একটি অনন্য শনাক্তকারী, যা অন্যান্য Google API-এর সাথে ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ, আপনি স্থানীয় ব্যবসার বিবরণ পেতে Google Places API লাইব্রেরির সাথেplace_idব্যবহার করতে পারেন, যেমন ফোন নম্বর, খোলা থাকার সময়, ব্যবহারকারীর পর্যালোচনা এবং আরও অনেক কিছু। স্থান আইডি ওভারভিউ দেখুন। -
postcode_localities[]হল একটি অ্যারে যা একটি পোস্টাল কোডের মধ্যে থাকা সমস্ত লোকেশন নির্দেশ করে, এবং শুধুমাত্র তখনই উপস্থিত থাকে যখন ফলাফলটি এমন একটি পোস্টাল কোড হয় যাতে একাধিক লোকেশন থাকে। geometryনিম্নলিখিত তথ্য রয়েছে:-
locationজিওকোডেড latitude, longitude মান থাকে। মনে রাখবেন যে আমরা এই locationটিকেLatLngঅবজেক্ট হিসেবে ফেরত দিচ্ছি, ফর্ম্যাট করা স্ট্রিং হিসেবে নয়। -
location_typeনির্দিষ্ট অবস্থান সম্পর্কে অতিরিক্ত তথ্য সংরক্ষণ করে। নিম্নলিখিত মানগুলি সমর্থিত:-
ROOFTOPনির্দেশ করে যে প্রত্যাবর্তিত ফলাফলটি একটি সুনির্দিষ্ট জিওকোড প্রতিফলিত করে। -
RANGE_INTERPOLATEDনির্দেশ করে যে প্রত্যাবর্তিত ফলাফলটি দুটি সুনির্দিষ্ট বিন্দুর (যেমন ছেদ) মধ্যে বিক্ষিপ্ত একটি আনুমানিক (সাধারণত একটি রাস্তায়) প্রতিফলিত করে। রাস্তার ঠিকানার জন্য ছাদের জিওকোড অনুপলব্ধ থাকলে সাধারণত ইন্টারপোলেটেড ফলাফলগুলি ফেরত দেওয়া হয়। -
GEOMETRIC_CENTERনির্দেশ করে যে প্রত্যাবর্তিত ফলাফল হল একটি ফলাফলের জ্যামিতিক কেন্দ্র যেমন একটি পলিলাইন (উদাহরণস্বরূপ, একটি রাস্তা) বা বহুভুজ (অঞ্চল)। -
APPROXIMATEনির্দেশ করে যে প্রাপ্ত ফলাফল আনুমানিক।
-
-
viewportরিটার্ন করা ফলাফলের জন্য প্রস্তাবিত ভিউপোর্ট সংরক্ষণ করে। -
bounds(ঐচ্ছিকভাবে ফেরত দেওয়া)LatLngBoundsসংরক্ষণ করে যা ফেরত দেওয়া ফলাফল সম্পূর্ণরূপে ধারণ করতে পারে। মনে রাখবেন যে এই সীমানাগুলি প্রস্তাবিত ভিউপোর্টের সাথে মেলে নাও পারে। (উদাহরণস্বরূপ, সান ফ্রান্সিসকোতে Farallon Islands অন্তর্ভুক্ত, যা প্রযুক্তিগতভাবে শহরের অংশ, কিন্তু ভিউপোর্টে ফেরত দেওয়া উচিত নয়।)
-
জিওকোডার ব্রাউজারের পছন্দের ভাষা সেটিং ব্যবহার করে ঠিকানাগুলি ফেরত পাঠায়, অথবা language প্যারামিটার ব্যবহার করে API জাভাস্ক্রিপ্ট লোড করার সময় নির্দিষ্ট করা ভাষা ব্যবহার করে। (আরও তথ্যের জন্য, স্থানীয়করণ দেখুন। )
ঠিকানার ধরণ এবং ঠিকানার উপাদানের ধরণ
উত্তরে GeocoderResult- এ types[] অ্যারে ঠিকানার ধরণ নির্দেশ করে। ঠিকানার ধরণের উদাহরণে একটি রাস্তার ঠিকানা, একটি দেশ, অথবা একটি রাজনৈতিক সত্তা অন্তর্ভুক্ত থাকে। GeocoderAddressComponent- এ types অ্যারে ঠিকানার প্রতিটি অংশের ধরণ নির্দেশ করে। উদাহরণে রাস্তার নম্বর বা দেশ অন্তর্ভুক্ত থাকে।
ঠিকানাগুলির একাধিক প্রকার থাকতে পারে। প্রকারগুলিকে 'ট্যাগ' হিসেবে বিবেচনা করা যেতে পারে। উদাহরণস্বরূপ, অনেক শহর political এবং locality ধরণের সাথে ট্যাগ করা হয়।
নিম্নলিখিত প্রকারগুলি ঠিকানার ধরণ এবং ঠিকানা উপাদানের ধরণ উভয় অ্যারেতেই সমর্থিত এবং ফেরত পাঠানো হয়:
| ঠিকানার ধরণ | বিবরণ |
|---|---|
street_address | একটি সুনির্দিষ্ট রাস্তার ঠিকানা। |
route | একটি নামযুক্ত রুট (যেমন "US 101")। |
intersection | একটি প্রধান সংযোগস্থল, সাধারণত দুটি প্রধান রাস্তার। |
political | একটি রাজনৈতিক সত্তা। সাধারণত, এই ধরণটি কিছু বেসামরিক প্রশাসনের বহুভুজকে নির্দেশ করে। |
country | জাতীয় রাজনৈতিক সত্তা, এবং সাধারণত জিওকোডার দ্বারা প্রদত্ত সর্বোচ্চ ক্রম প্রকার। |
administrative_area_level_1 | দেশ স্তরের নীচের একটি প্রথম সারির নাগরিক সত্তা। মার্কিন যুক্তরাষ্ট্রের মধ্যে, এই প্রশাসনিক স্তরগুলি রাজ্য। সমস্ত দেশে এই প্রশাসনিক স্তরগুলি প্রদর্শিত হয় না। বেশিরভাগ ক্ষেত্রে, administrative_area_level_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"indicates that your request was denied. The web page is not allowed to use the geocoder. -
"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 প্যারামিটার সেট করে এটি করতে পারেন। মনে রাখবেন যে বায়াসিং শুধুমাত্র সীমার মধ্যে ফলাফল পছন্দ করে ; যদি এই সীমার বাইরে আরও প্রাসঙ্গিক ফলাফল থাকে, তাহলে সেগুলি অন্তর্ভুক্ত করা যেতে পারে।
উদাহরণস্বরূপ, "উইনেটকা" এর জন্য একটি জিওকোড সাধারণত শিকাগোর এই শহরতলিকে ফেরত দেয়:
{ "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 প্ল্যাটফর্ম কভারেজের বিবরণে তালিকাভুক্ত দেশ এবং অঞ্চলগুলি সমর্থিত।
মূল গুগল ম্যাপস অ্যাপ্লিকেশনটি যে সকল ডোমেনে জিওকোডিং অফার করে, তার জন্য জিওকোডিং অনুরোধ পাঠানো যেতে পারে। মনে রাখবেন যে বায়াসিং শুধুমাত্র একটি নির্দিষ্ট ডোমেনের জন্য ফলাফল পছন্দ করে ; যদি এই ডোমেনের বাইরে আরও প্রাসঙ্গিক ফলাফল থাকে, তাহলে সেগুলি অন্তর্ভুক্ত করা যেতে পারে।
উদাহরণস্বরূপ, "টলেডো" এর জন্য একটি জিওকোড এই ফলাফলটি প্রদান করে, কারণ জিওকোডিং পরিষেবার জন্য ডিফল্ট ডোমেনটি মার্কিন যুক্তরাষ্ট্রে সেট করা আছে:
{ "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" }
"টলেডো" এর জন্য একটি জিওকোড যার region ক্ষেত্রটি 'es' (স্পেন) তে সেট করা আছে, স্প্যানিশ শহরটি ফিরিয়ে দেবে:
{ "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 প্যারামিটারে ফিল্টারটি নির্দিষ্ট করুন। ফিল্টার মানগুলি অন্যান্য জিওকোডিং অনুরোধের মতো বানান সংশোধন এবং আংশিক মিলের একই পদ্ধতি সমর্থন করে।
জিওকোডার কেবলমাত্র সেই ফলাফলগুলিই প্রদান করে যা সমস্ত কম্পোনেন্ট ফিল্টারের সাথে মেলে। অর্থাৎ, এটি ফিল্টারের স্পেসিফিকেশনগুলিকে OR হিসেবে নয়, বরং AND হিসেবে মূল্যায়ন করে।
একটি কম্পোনেন্ট ফিল্টারে নিম্নলিখিত এক বা একাধিক আইটেম থাকে:
-
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); } }); }
শূন্য ফলাফলে পূরণ করুন
রিভার্স জিওকোডিংয়ের জন্য, ডিফল্টরূপে status=ZERO_RESULTS তে প্রতিশ্রুতি ভঙ্গ করা হয়। তবে, এই ক্ষেত্রে plus_code এবং address_descriptor এর অতিরিক্ত প্রতিক্রিয়া স্তরের ক্ষেত্রগুলি এখনও পূরণ করা হতে পারে। যদি fulfillOnZeroResults প্যারামিটারের জন্য true প্রদান করা হয়, তবে এই ক্ষেত্রে পূরণ করা হয়। যদি fulfillOnZeroResults প্যারামিটারের জন্য true প্রদান করা হয়, তাহলে প্রতিশ্রুতি ভঙ্গ করা হয় না এবং এই অতিরিক্ত ক্ষেত্রগুলি যদি প্রতিশ্রুতি থাকে তবে তা থেকে অ্যাক্সেসযোগ্য।
অ্যান্টার্কটিকার অক্ষাংশ/দ্রাঘিমাংশের ক্ষেত্রে এই আচরণের একটি উদাহরণ নিচে দেওয়া হল। যদিও কোনও বিপরীত জিওকোডিং ফলাফল নেই, তবুও যদি আমরা fulfillOnZeroResults=true সেট করি তবে আমরা প্রতিশ্রুতিতে প্লাস কোডটি প্রিন্ট করতে পারি।
function addressDescriptorReverseGeocoding() { var latlng = new google.maps.LatLng(-75.290330, 38.653861); geocoder .geocode({ 'location': latlng, 'fulfillOnZeroResults': true, }) .then((response) => { console.log(response.plus_code); }) .catch((error) => { window.alert(`Error`); }); }
ঠিকানা বর্ণনাকারী
ঠিকানা বর্ণনাকারীতে অতিরিক্ত তথ্য থাকে যা ল্যান্ডমার্ক এবং এলাকা ব্যবহার করে একটি অবস্থান বর্ণনা করতে সাহায্য করে। বৈশিষ্ট্যটি অন্বেষণ করতে ঠিকানা বর্ণনাকারীর ডেমোটি দেখুন।
extraComputations প্যারামিটার ব্যবহারের মাধ্যমে ঠিকানা বর্ণনাকারী সক্রিয় করা যেতে পারে। আপনার প্রতিক্রিয়ায় ঠিকানা বর্ণনাকারী গ্রহণের জন্য একটি জিওকোডিং অনুরোধ , বিপরীত জিওকোডিং অনুরোধ , অথবা একটি স্থানের জিওকোডিং অনুরোধে extra_computations=ADDRESS_DESCRIPTORS অন্তর্ভুক্ত করুন।
স্থানের জিওকোডিং-এর উদাহরণ
নিম্নলিখিত প্রশ্নের মধ্যে দিল্লির একটি স্থানের ঠিকানা রয়েছে।
function addressDescriptorPlaceIdLookup() { geocoder.geocode({ geocoder.geocode({ 'placeId': 'ChIJyxAX8Bj9DDkRgBfAnBYa66Q', 'extraComputations': ['ADDRESS_DESCRIPTORS'] }, function(results, status) { if (status == 'OK') { console.log(results[0].address_descriptor); } else { window.alert('Geocode was not successful for the following reason: ' + status); } }); }
বিপরীত জিওকোডিংয়ের উদাহরণ
নিম্নলিখিত কোয়েরিতে দিল্লির একটি অবস্থানের অক্ষাংশ/দ্রাঘিমাংশের মান রয়েছে।
function addressDescriptorReverseGeocoding() { var latlng = new google.maps.LatLng(28.640964,77.235875); geocoder .geocode({ 'location': latlng, 'extraComputations': ["ADDRESS_DESCRIPTORS"], }) .then((response) => { console.log(response.address_descriptor); }) .catch((error) => { window.alert(`Error`); }); }
ঠিকানা বর্ণনাকারীর উদাহরণ
address_descriptor একটি উদাহরণ নিম্নরূপ।
{ "address_descriptor" : { "areas" : [ { "containment" : "OUTSKIRTS", "display_name" : { "language_code" : "en", "text" : "Turkman Gate" }, "place_id" : "ChIJ_7LLvyb9DDkRMKKxP9YyXgs" }, { "containment" : "OUTSKIRTS", "display_name" : { "language_code" : "en", "text" : "Chandni Chowk" }, "place_id" : "ChIJWcXciBr9DDkRUb4dCDykTwI" }, { "containment" : "NEAR", "display_name" : { "language_code" : "en", "text" : "Katar Ganj" }, "place_id" : "ChIJH3cWUyH9DDkRaw-9CjvcRvY" } ], "landmarks" : [ { "display_name" : { "language_code" : "en", "text" : "Delite Cinema" }, "straight_line_distance_meters" : 29.9306755065918, "place_id" : "ChIJLfiYDCT9DDkROoEa7NdupUM", "travel_distance_meters" : 418.7794799804688, "spatial_relationship" : "ACROSS_THE_ROAD", "types" : [ "establishment", "movie_theater", "point_of_interest" ] }, { "display_name" : { "language_code" : "en", "text" : "YES Bank" }, "straight_line_distance_meters" : 66.83731079101562, "place_id" : "ChIJFYHM3yb9DDkRRKGkZl2mpSQ", "travel_distance_meters" : 489.0340270996094, "spatial_relationship" : "DOWN_THE_ROAD", "types" : [ "bank", "establishment", "finance", "point_of_interest" ] }, { "display_name" : { "language_code" : "en", "text" : "UCO Bank" }, "straight_line_distance_meters" : 25.38849639892578, "place_id" : "ChIJ-c6_wCb9DDkRjIk1LeqRtGM", "travel_distance_meters" : 403.2246398925781, "spatial_relationship" : "ACROSS_THE_ROAD", "types" : [ "atm", "bank", "establishment", "finance", "point_of_interest" ] }, { "display_name" : { "language_code" : "en", "text" : "Delhi By Cycle Meeting Point" }, "straight_line_distance_meters" : 44.02867126464844, "place_id" : "ChIJNxVfkSb9DDkRJD22l-eGFdM", "travel_distance_meters" : 97.41281890869141, "spatial_relationship" : "AROUND_THE_CORNER", "types" : [ "establishment", "point_of_interest", "tourist_attraction", "travel_agency" ] }, { "display_name" : { "language_code" : "en", "text" : "Axis Bank Branch" }, "straight_line_distance_meters" : 102.3495178222656, "place_id" : "ChIJr3uaDCT9DDkR8roHTVSn1x4", "travel_distance_meters" : 330.8566284179688, "spatial_relationship" : "DOWN_THE_ROAD", "types" : [ "bank", "establishment", "finance", "point_of_interest" ] } ] } }
প্রতিটি address_descriptor অবজেক্টে দুটি অ্যারে থাকে: landmarks এবং areas । landmarks অ্যারেতে অনুরোধকৃত স্থানাঙ্কের নৈকট্য, ল্যান্ডমার্কের প্রসার এবং এর দৃশ্যমানতা বিবেচনা করে প্রাসঙ্গিকতার ক্রম অনুসারে সর্বাধিক 5টি ফলাফল থাকে। প্রতিটি ল্যান্ডমার্ক ফলাফলে নিম্নলিখিত মান থাকে:
-
place_idহল ল্যান্ডমার্ক ফলাফলের স্থান আইডি। স্থান আইডি ওভারভিউ দেখুন। -
display_nameহল ল্যান্ডমার্কের প্রদর্শন নাম এবং এতেlanguage_codeএবংtextরয়েছে। -
straight_line_distance_metersহল ইনপুট স্থানাঙ্ক এবং ল্যান্ডমার্ক ফলাফলের মধ্যে মিটারে বিন্দু থেকে বিন্দু দূরত্ব। -
travel_distance_metersহল ইনপুট স্থানাঙ্ক এবং ল্যান্ডমার্ক ফলাফলের মধ্যে সড়ক নেটওয়ার্ক (রাস্তার সীমাবদ্ধতা উপেক্ষা করে) ব্যবহার করে ভ্রমণ করা দূরত্ব মিটারে। -
spatial_relationshipহল ইনপুট স্থানাঙ্ক এবং ল্যান্ডমার্ক ফলাফলের মধ্যে আনুমানিক সম্পর্ক: -
"NEAR"হল ডিফল্ট সম্পর্ক যখন নিম্নলিখিতগুলির কোনওটিই প্রযোজ্য নয়। -
"WITHIN"যখন ইনপুট স্থানাঙ্কটি ল্যান্ডমার্কের সাথে সম্পর্কিত কাঠামোর সীমানার মধ্যে থাকে। -
"BESIDE"যখন ইনপুট স্থানাঙ্কটি সরাসরি ল্যান্ডমার্ক বা ল্যান্ডমার্কের অ্যাক্সেস পয়েন্টের সংলগ্ন থাকে। -
"ACROSS_THE_ROAD"যখন ইনপুট স্থানাঙ্কটি রুটের অন্য পাশে ল্যান্ডমার্কের ঠিক বিপরীতে থাকে। -
"DOWN_THE_ROAD"যখন ইনপুট স্থানাঙ্কটি ল্যান্ডমার্কের মতো একই রুটে থাকে, কিন্তু"BESIDES"বা"ACROSS_THE_ROAD"নয়। -
"AROUND_THE_CORNER"যখন ইনপুট স্থানাঙ্কটি ল্যান্ডমার্ক হিসাবে একটি লম্ব রুট বরাবর থাকে (একটি একক বাঁকের মধ্যে সীমাবদ্ধ)। -
"BEHIND"যখন ইনপুট স্থানাঙ্ক স্থানিকভাবে ল্যান্ডমার্কের কাছাকাছি থাকে, কিন্তু এর অ্যাক্সেস পয়েন্ট থেকে অনেক দূরে থাকে। -
typesহল ল্যান্ডমার্কের স্থানের প্রকার ।
areas অবজেক্ট"-এ সর্বাধিক ৩টি প্রতিক্রিয়া থাকে এবং এটি ছোট অঞ্চল, যেমন পাড়া, উপ-স্থান এবং বৃহৎ কমপ্লেক্সের প্রতিনিধিত্বকারী স্থানগুলিতে সীমাবদ্ধ থাকে। অনুরোধকৃত স্থানাঙ্ক ধারণকারী এলাকাগুলিকে প্রথমে তালিকাভুক্ত করা হয় এবং ক্ষুদ্রতম থেকে বৃহত্তম পর্যন্ত ক্রমানুসারে সাজানো হয়। প্রতিটি areas ফলাফলে নিম্নলিখিত মানগুলি থাকে:
-
place_idহল এলাকার ফলাফলের স্থান আইডি। স্থান আইডির ওভারভিউ দেখুন। -
display_nameহল এলাকার প্রদর্শন নাম এবং এতেlanguage_codeএবংtextথাকে। -
containmentহল ইনপুট স্থানাঙ্ক এবং এলাকার ফলাফলের মধ্যে আনুমানিক কনটেনমেন্ট সম্পর্ক: -
"NEAR"হল ডিফল্ট সম্পর্ক যখন নিম্নলিখিতগুলির কোনওটিই প্রযোজ্য নয়। -
"WITHIN"যখন ইনপুট স্থানাঙ্কটি এলাকার কেন্দ্রের কাছাকাছি থাকে। -
"OUTSKIRTS"যখন ইনপুট স্থানাঙ্ক এলাকার প্রান্তের কাছাকাছি থাকে।
ঠিকানা বর্ণনাকারীর কভারেজ
ভারতের জন্য ঠিকানা বর্ণনাকারীরা GA-তে রয়েছে। ভারতে ঠিকানা বর্ণনাকারী ব্যবহারের জন্য কোনও অতিরিক্ত খরচ হয় না এবং ব্যবহার বিদ্যমান Geocoding (India) Essentials SKU দ্বারা আচ্ছাদিত।
প্রতিক্রিয়া
এই বৈশিষ্ট্যটি সমস্ত অঞ্চলে উপলব্ধ। এটি ভারতের জন্য GA-তে এবং অন্যান্য সমস্ত অঞ্চলে GA-এর প্রাক-পরীক্ষামূলক লঞ্চ পর্যায়ে রয়েছে। আমরা প্রতিক্রিয়ার জন্য কৃতজ্ঞ থাকব:
- শুধুমাত্র ভারত অঞ্চল সম্পর্কিত সমস্যার জন্য, সহায়তা দলের সাথে যোগাযোগ করুন।
- পরীক্ষামূলক প্রকাশের বিষয়ে প্রতিক্রিয়ার জন্য, address-descriptors-feedback@google.com এ আমাদের ইমেল করুন।
- আরও তথ্যের জন্য ঠিকানা বর্ণনাকারীর কভারেজের বিবরণ দেখুন।
বিপরীত জিওকোডিং (ঠিকানা অনুসন্ধান)
The term geocoding generally refers to translating a human-readable address into a location on a map. The process of doing the converse, translating a location on the map into a human-readable address, is known as reverse geocoding .
একটি টেক্সট address প্রদানের পরিবর্তে, location প্যারামিটারে একটি কমা দ্বারা পৃথক অক্ষাংশ/দ্রাঘিমাংশ জোড়া প্রদান করুন।
নিচের উদাহরণটি একটি অক্ষাংশ/দ্রাঘিমাংশের মানকে জিওকোড করে এবং মানচিত্রটিকে সেই স্থানে কেন্দ্রীভূত করে, ফর্ম্যাট করা ঠিকানা সহ একটি তথ্য উইন্ডো নিয়ে আসে:
টাইপস্ক্রিপ্ট
let marker; async function initMap() { // Request the needed libraries. const [{ Map, InfoWindow }, { Geocoder }, { AdvancedMarkerElement }] = await Promise.all([ google.maps.importLibrary( 'maps' ) as Promise<google.maps.MapsLibrary>, google.maps.importLibrary( 'geocoding' ) as Promise<google.maps.GeocodingLibrary>, google.maps.importLibrary( 'marker' ) as Promise<google.maps.MarkerLibrary>, ]); // Get the gmp-map element. const mapElement = document.querySelector( 'gmp-map' ) as google.maps.MapElement; // Get the inner map. const innerMap = mapElement.innerMap; // Get the latlng input box. const latLngQuery = document.getElementById('latlng') as HTMLInputElement; // Get the submit button. const submitButton = document.getElementById('submit') as HTMLElement; // Set the cursor to crosshair. innerMap.setOptions({ draggableCursor: 'crosshair', zoom: 13, }); // Create a marker for re-use. marker = new AdvancedMarkerElement({ map: innerMap, }); const geocoder = new Geocoder(); const infowindow = new InfoWindow(); // Add a click event listener to the submit button. submitButton.addEventListener('click', () => { geocodeLatLng(geocoder, innerMap, infowindow); }); // Add a click event listener to the map. innerMap.addListener('click', (event) => { latLngQuery.value = `${event.latLng.lat()}, ${event.latLng.lng()}`; geocodeLatLng(geocoder, innerMap, infowindow); }); // Make an initial request upon loading. geocodeLatLng(geocoder, innerMap, infowindow); } async 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]) { marker.position = latlng; map.setCenter(latlng); 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)); } initMap();
জাভাস্ক্রিপ্ট
let marker; async function initMap() { // Request the needed libraries. const [{ Map, InfoWindow }, { Geocoder }, { AdvancedMarkerElement }] = await Promise.all([ google.maps.importLibrary('maps'), google.maps.importLibrary('geocoding'), google.maps.importLibrary('marker'), ]); // Get the gmp-map element. const mapElement = document.querySelector('gmp-map'); // Get the inner map. const innerMap = mapElement.innerMap; // Get the latlng input box. const latLngQuery = document.getElementById('latlng'); // Get the submit button. const submitButton = document.getElementById('submit'); // Set the cursor to crosshair. innerMap.setOptions({ draggableCursor: 'crosshair', zoom: 13, }); // Create a marker for re-use. marker = new AdvancedMarkerElement({ map: innerMap, }); const geocoder = new Geocoder(); const infowindow = new InfoWindow(); // Add a click event listener to the submit button. submitButton.addEventListener('click', () => { geocodeLatLng(geocoder, innerMap, infowindow); }); // Add a click event listener to the map. innerMap.addListener('click', (event) => { latLngQuery.value = `${event.latLng.lat()}, ${event.latLng.lng()}`; geocodeLatLng(geocoder, innerMap, infowindow); }); // Make an initial request upon loading. geocodeLatLng(geocoder, innerMap, infowindow); } async 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]) { marker.position = latlng; map.setCenter(latlng); 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)); } 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;