স্থান লাইব্রেরি

ইউরোপীয় অর্থনৈতিক অঞ্চল (EEA) ডেভেলপাররা

সংক্ষিপ্ত বিবরণ

প্লেস লাইব্রেরি, ম্যাপস জাভাস্ক্রিপ্ট এপিআই-এর ফাংশনগুলি আপনার অ্যাপ্লিকেশনকে একটি নির্দিষ্ট এলাকার মধ্যে অবস্থিত স্থানগুলি (এই এপিআইতে স্থাপনা, ভৌগোলিক অবস্থান, বা আকর্ষণীয় স্থান হিসাবে সংজ্ঞায়িত) অনুসন্ধান করতে সক্ষম করে, যেমন একটি মানচিত্রের সীমানা, অথবা একটি নির্দিষ্ট বিন্দুর চারপাশে।

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

শুরু করা

আপনি যদি Maps JavaScript API বা JavaScript এর সাথে অপরিচিত হন, তাহলে আমরা আপনাকে JavaScript পর্যালোচনা করার এবং শুরু করার আগে একটি API কী নেওয়ার পরামর্শ দিচ্ছি।

লাইব্রেরি লোড করুন

প্লেসেস পরিষেবাটি একটি স্বয়ংসম্পূর্ণ লাইব্রেরি, যা মূল Maps JavaScript API কোড থেকে আলাদা। এই লাইব্রেরির মধ্যে থাকা কার্যকারিতা ব্যবহার করতে, আপনাকে প্রথমে Maps API বুটস্ট্র্যাপ URL-এ libraries প্যারামিটার ব্যবহার করে এটি লোড করতে হবে:

<script async
    src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&loading=async&libraries=places&callback=initMap">
</script>

আরও তথ্যের জন্য লাইব্রেরিগুলির সংক্ষিপ্ত বিবরণ দেখুন।

API কী-এর API সীমাবদ্ধতা তালিকায় Places API যোগ করুন

আপনার কীগুলিতে API বিধিনিষেধ প্রয়োগ করলে API কী-এর ব্যবহার এক বা একাধিক API বা SDK-তে সীমাবদ্ধ থাকে। API কী-এর সাথে সম্পর্কিত কোনও API বা SDK-এর অনুরোধ প্রক্রিয়া করা হবে। API কী-এর সাথে সম্পর্কিত নয় এমন কোনও API বা SDK-এর অনুরোধ ব্যর্থ হবে। Places Library-এর সাথে ব্যবহারের জন্য API কী-কে সীমাবদ্ধ করতে, Maps JavaScript API:
  1. গুগল ক্লাউড কনসোলে যান।
  2. প্রজেক্টের ড্রপ-ডাউনে ক্লিক করুন এবং আপনি যে API কীটি সুরক্ষিত করতে চান সেটি ধারণকারী প্রজেক্টটি নির্বাচন করুন।
  3. মেনু বোতামে ক্লিক করুন এবং Google Maps Platform > Credentials নির্বাচন করুন।
  4. শংসাপত্র পৃষ্ঠায়, আপনি যে API কীটি সুরক্ষিত করতে চান তার নামে ক্লিক করুন।
  5. API কী সীমাবদ্ধ করুন এবং পুনঃনামকরণ করুন পৃষ্ঠায়, সীমাবদ্ধতাগুলি সেট করুন:
    • API বিধিনিষেধ
      • সীমাবদ্ধ কী নির্বাচন করুন।
      • Select APIs এ ক্লিক করুন এবং Maps JavaScript API এবং Places API উভয়ই নির্বাচন করুন।
        (যদি API গুলির কোনও একটি তালিকাভুক্ত না থাকে, তাহলে আপনাকে এটি সক্রিয় করতে হবে।)
  6. সংরক্ষণ করুন ক্লিক করুন।

ব্যবহারের সীমা এবং নীতিমালা

কোটা

Places লাইব্রেরি Places API-এর সাথে একটি ব্যবহারের কোটা ভাগ করে নেয় যেমন Places API-এর জন্য Usage Limits ডকুমেন্টেশনে বর্ণিত হয়েছে।

নীতিমালা

Places লাইব্রেরি, Maps JavaScript API এর ব্যবহার Places API এর জন্য বর্ণিত নীতি অনুসারে হতে হবে।

স্থান অনুসন্ধান

স্থান পরিষেবার মাধ্যমে আপনি নিম্নলিখিত ধরণের অনুসন্ধান করতে পারেন:

ফেরত দেওয়া তথ্যে প্রতিষ্ঠান - যেমন রেস্তোরাঁ, দোকান এবং অফিস - এবং 'জিওকোড' ফলাফল অন্তর্ভুক্ত থাকতে পারে, যা ঠিকানা, রাজনৈতিক এলাকা যেমন শহর ও শহর এবং অন্যান্য আগ্রহের স্থান নির্দেশ করে।

স্থানের অনুরোধ খুঁজুন

একটি স্থান অনুসন্ধানের অনুরোধ আপনাকে টেক্সট কোয়েরি বা ফোন নম্বরের মাধ্যমে একটি স্থান অনুসন্ধান করতে দেয়। স্থান অনুসন্ধানের অনুরোধ দুই ধরণের:

কোয়েরি থেকে স্থান খুঁজুন

Query থেকে Find Place একটি টেক্সট ইনপুট নেয় এবং একটি স্থান ফেরত দেয়। ইনপুটটি যেকোনো ধরণের স্থানের ডেটা হতে পারে, উদাহরণস্বরূপ একটি ব্যবসার নাম বা ঠিকানা। Query থেকে Find Place অনুরোধ করতে, PlacesService এর findPlaceFromQuery() পদ্ধতিতে কল করুন, যা নিম্নলিখিত পরামিতিগুলি গ্রহণ করে:

  • query (প্রয়োজনীয়) যে টেক্সট স্ট্রিংটিতে অনুসন্ধান করতে হবে, উদাহরণস্বরূপ: "রেস্তোরাঁ" অথবা "১২৩ মেইন স্ট্রিট"। এটি অবশ্যই একটি স্থানের নাম, ঠিকানা, অথবা প্রতিষ্ঠানের বিভাগ হতে হবে। অন্য যেকোনো ধরণের ইনপুট ত্রুটি তৈরি করতে পারে এবং বৈধ ফলাফল ফেরত দেওয়ার নিশ্চয়তা দেয় না। Places API এই স্ট্রিংয়ের উপর ভিত্তি করে প্রার্থীর মিলগুলি ফেরত দেবে এবং তাদের অনুভূত প্রাসঙ্গিকতার উপর ভিত্তি করে ফলাফলগুলি অর্ডার করবে।
  • fields (প্রয়োজনীয়) এক বা একাধিক ক্ষেত্র যা কোন ধরণের স্থানের ডেটা ফেরত দেবে তা নির্দিষ্ট করে।
  • locationBias (ঐচ্ছিক) অনুসন্ধানের জন্য এলাকা নির্ধারণকারী স্থানাঙ্ক। এটি নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:
    • LatLngLiteral বা LatLng অবজেক্ট হিসেবে নির্দিষ্ট করা lat/lng স্থানাঙ্কের একটি সেট
    • আয়তক্ষেত্রাকার সীমানা (দুটি lat/lng জোড়া, অথবা একটি LatLngBounds বস্তু )
    • একটি অক্ষাংশ/lng কেন্দ্রীভূত ব্যাসার্ধ (মিটারে)

ফলাফল অবজেক্ট এবং google.maps.places.PlacesServiceStatus প্রতিক্রিয়া পরিচালনা করার জন্য আপনাকে findPlaceFromQuery() এর জন্য একটি কলব্যাক পদ্ধতিও পাস করতে হবে।

নিচের উদাহরণে findPlaceFromQuery() এর জন্য একটি কল দেখানো হয়েছে, যেখানে "Museum of Contemporary Art Australia" অনুসন্ধান করা হয়েছে, এবং name এবং geometry ক্ষেত্রগুলি অন্তর্ভুক্ত করা হয়েছে।

var map;
var service;
var infowindow;

function initMap() {
  var sydney = new google.maps.LatLng(-33.867, 151.195);

  infowindow = new google.maps.InfoWindow();

  map = new google.maps.Map(
      document.getElementById('map'), {center: sydney, zoom: 15});

  var request = {
    query: 'Museum of Contemporary Art Australia',
    fields: ['name', 'geometry'],
  };

  var service = new google.maps.places.PlacesService(map);

  service.findPlaceFromQuery(request, function(results, status) {
    if (status === google.maps.places.PlacesServiceStatus.OK) {
      for (var i = 0; i < results.length; i++) {
        createMarker(results[i]);
      }
      map.setCenter(results[0].geometry.location);
    }
  });
}
উদাহরণ দেখুন

ফোন নম্বর থেকে স্থান খুঁজুন

ফোন নম্বর থেকে স্থান খুঁজুন একটি ফোন নম্বর নেয় এবং একটি স্থান ফেরত দেয়। ফোন নম্বর থেকে স্থান খুঁজুন অনুরোধ করতে, PlacesService এর findPlaceFromPhoneNumber() পদ্ধতিতে কল করুন, যা নিম্নলিখিত পরামিতিগুলি নেয়:

  • phoneNumber (প্রয়োজনীয়) E.164 ফর্ম্যাটে একটি ফোন নম্বর।
  • fields (প্রয়োজনীয়) এক বা একাধিক ক্ষেত্র যা কোন ধরণের স্থানের ডেটা ফেরত দেবে তা নির্দিষ্ট করে।
  • locationBias (ঐচ্ছিক) অনুসন্ধানের জন্য এলাকা নির্ধারণকারী স্থানাঙ্ক। এটি নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:
    • LatLngLiteral বা LatLng অবজেক্ট হিসেবে নির্দিষ্ট করা lat/lng স্থানাঙ্কের একটি সেট
    • আয়তক্ষেত্রাকার সীমানা (চারটি lat/lng বিন্দু, অথবা একটি LatLngBounds বস্তু )
    • একটি অক্ষাংশ/lng কেন্দ্রীভূত ব্যাসার্ধ (মিটারে)

ফলাফল অবজেক্ট এবং google.maps.places.PlacesServiceStatus প্রতিক্রিয়া পরিচালনা করার জন্য আপনাকে findPlaceFromPhoneNumber() এর জন্য একটি কলব্যাক পদ্ধতিও পাস করতে হবে।

ক্ষেত্র (স্থান খুঁজুন পদ্ধতি)

fields প্যারামিটার ব্যবহার করে প্লেস ডেটা টাইপের একটি অ্যারে নির্দিষ্ট করুন যা ফেরত পাঠানো হবে। উদাহরণস্বরূপ: fields: ['formatted_address', 'opening_hours', 'geometry'] । যৌগিক মান নির্দিষ্ট করার সময় একটি বিন্দু ব্যবহার করুন। উদাহরণস্বরূপ: opening_hours.weekday_text

ক্ষেত্রগুলি স্থান অনুসন্ধান ফলাফলের সাথে সামঞ্জস্যপূর্ণ, এবং তিনটি বিলিং বিভাগে বিভক্ত: মৌলিক, যোগাযোগ, এবং বায়ুমণ্ডল। মৌলিক ক্ষেত্রগুলি বেস রেটে বিল করা হয় এবং কোনও অতিরিক্ত চার্জ লাগে না। যোগাযোগ এবং বায়ুমণ্ডল ক্ষেত্রগুলি উচ্চ হারে বিল করা হয়। আরও তথ্যের জন্য মূল্য তালিকা দেখুন। ক্ষেত্রটি অনুরোধ করা হয়েছে কিনা তা নির্বিশেষে, প্রতিটি কলের সাথে অ্যাট্রিবিউশন ( html_attributions ) সর্বদা ফেরত দেওয়া হয়।

মৌলিক

মৌলিক বিভাগে নিম্নলিখিত ক্ষেত্রগুলি অন্তর্ভুক্ত রয়েছে:
business_status , formatted_address , geometry , icon , icon_mask_base_uri , icon_background_color , name , permanently_closed ( deprecated ), photos , place_id , plus_code , types

যোগাযোগ

যোগাযোগ বিভাগে নিম্নলিখিত ক্ষেত্রটি অন্তর্ভুক্ত রয়েছে: opening_hours
(Places Library, Maps JavaScript API-তে অবচিতopening_hours ফলাফল পেতে একটি Place Details অনুরোধ ব্যবহার করুন)।

বায়ুমণ্ডল

বায়ুমণ্ডল বিভাগে নিম্নলিখিত ক্ষেত্রগুলি অন্তর্ভুক্ত রয়েছে: price_level , rating , user_ratings_total

findPlaceFromQuery() এবং findPlaceFromPhoneNumber() পদ্ধতি দুটি একই ক্ষেত্র গ্রহণ করে এবং তাদের নিজ নিজ প্রতিক্রিয়ায় একই ক্ষেত্রগুলি ফেরত পাঠাতে পারে।

অবস্থান পক্ষপাত সেট করুন (স্থান পদ্ধতি খুঁজুন)

একটি নির্দিষ্ট এলাকায় Find Place-কে পছন্দের ফলাফল দিতে locationBias প্যারামিটার ব্যবহার করুন। আপনি নিম্নলিখিত উপায়ে locationBias সেট করতে পারেন:

একটি নির্দিষ্ট এলাকার পক্ষপাতের ফলাফল:

locationBias: {lat: 37.402105, lng: -122.081974}

অনুসন্ধানের জন্য একটি আয়তক্ষেত্রাকার এলাকা নির্ধারণ করুন:

locationBias: {north: 37.41, south: 37.40, east: -122.08, west: -122.09}

আপনি একটি LatLngBounds ও ব্যবহার করতে পারেন।

একটি নির্দিষ্ট এলাকার উপর কেন্দ্রীভূত একটি ব্যাসার্ধ (মিটারে) নির্ধারণ করুন:

locationBias: {radius: 100, center: {lat: 37.402105, lng: -122.081974}}

কাছাকাছি অনুসন্ধানের অনুরোধ

কাছাকাছি অনুসন্ধান আপনাকে কীওয়ার্ড বা টাইপ অনুসারে একটি নির্দিষ্ট এলাকার মধ্যে স্থান অনুসন্ধান করতে দেয়। কাছাকাছি অনুসন্ধানে সর্বদা একটি অবস্থান অন্তর্ভুক্ত থাকতে হবে, যা দুটি উপায়ের একটিতে নির্দিষ্ট করা যেতে পারে:

  • একটি LatLngBounds
  • একটি বৃত্তাকার ক্ষেত্র যা location বৈশিষ্ট্যের সংমিশ্রণ হিসাবে সংজ্ঞায়িত করা হয় — যা বৃত্তের কেন্দ্রকে একটি LatLng বস্তু হিসাবে নির্দিষ্ট করে — এবং মিটারে পরিমাপ করা একটি ব্যাসার্ধ।

PlacesService এর nearbySearch() পদ্ধতিতে কল করার মাধ্যমে Places Nearby অনুসন্ধান শুরু হয়, যা PlaceResult অবজেক্টের একটি অ্যারে ফেরত দেবে। মনে রাখবেন যে nearbySearch() পদ্ধতিটি 3.9 সংস্করণে search() পদ্ধতির পরিবর্তে কাজ করে।

service = new google.maps.places.PlacesService(map);
service.nearbySearch(request, callback);

এই পদ্ধতিটি নিম্নলিখিত ক্ষেত্রগুলির সাথে একটি অনুরোধ গ্রহণ করে:

  • যেকোনো একটি:
    • bounds , যা অবশ্যই একটি google.maps.LatLngBounds অবজেক্ট হতে হবে যা আয়তক্ষেত্রাকার অনুসন্ধান এলাকা নির্ধারণ করে। সীমানা এলাকার জন্য সর্বাধিক সমর্থিত তির্যক দূরত্ব প্রায় 100,000 মিটার।
    • একটি location এবং একটি radius ; প্রথমটি একটি google.maps.LatLng অবজেক্ট নেয় এবং দ্বিতীয়টি একটি সরল পূর্ণসংখ্যা নেয়, যা বৃত্তের ব্যাসার্ধকে মিটারে উপস্থাপন করে। সর্বাধিক অনুমোদিত ব্যাসার্ধ হল 50,000 মিটার। মনে রাখবেন যে যখন rankBy DISTANCE তে সেট করা থাকে, তখন আপনাকে একটি location নির্দিষ্ট করতে হবে কিন্তু আপনি একটি radius বা bounds নির্দিষ্ট করতে পারবেন না।
  • keyword ( ঐচ্ছিক ) — একটি শব্দ যা সমস্ত উপলব্ধ ক্ষেত্রের সাথে মিলবে, যার মধ্যে নাম, ধরণ এবং ঠিকানা, সেইসাথে গ্রাহক পর্যালোচনা এবং অন্যান্য তৃতীয় পক্ষের সামগ্রী অন্তর্ভুক্ত কিন্তু সীমাবদ্ধ নয়।
  • minPriceLevel এবং maxPriceLevel ( ঐচ্ছিক ) — নির্দিষ্ট পরিসরের মধ্যে শুধুমাত্র সেই স্থানগুলিতে ফলাফল সীমাবদ্ধ করে। বৈধ মান 0 (সবচেয়ে সাশ্রয়ী মূল্যের) থেকে 4 (সবচেয়ে ব্যয়বহুল) এর মধ্যে থাকে, যার মধ্যে অন্তর্ভুক্ত।
  • name অবচিত। keyword সমতুল্য। এই ক্ষেত্রের মানগুলি keyword ক্ষেত্রের মানগুলির সাথে একত্রিত করা হয় এবং একই অনুসন্ধান স্ট্রিংয়ের অংশ হিসাবে পাস করা হয়।
  • openNow ( ঐচ্ছিক ) — একটি বুলিয়ান মান, যা নির্দেশ করে যে Places পরিষেবা শুধুমাত্র সেইসব স্থান ফেরত দেবে যেগুলি কোয়েরি পাঠানোর সময় ব্যবসার জন্য খোলা ছিল। Google Places ডাটাবেসে খোলার সময় নির্দিষ্ট করে না এমন স্থানগুলি যদি আপনি আপনার কোয়েরিতে এই প্যারামিটারটি অন্তর্ভুক্ত করেন তবে ফেরত দেওয়া হবে না। openNow কে false এ সেট করলে কোনও প্রভাব পড়বে না।
  • rankBy ( ঐচ্ছিক ) — ফলাফল তালিকাভুক্ত করার ক্রম নির্দিষ্ট করে। সম্ভাব্য মানগুলি হল:
    • google.maps.places.RankBy.PROMINENCE (ডিফল্ট)। এই বিকল্পটি ফলাফলগুলিকে তাদের গুরুত্বের উপর ভিত্তি করে সাজায়। র‍্যাঙ্কিং নির্ধারিত ব্যাসার্ধের মধ্যে বিশিষ্ট স্থানগুলিকে নিকটবর্তী স্থানগুলির তুলনায় পছন্দ করবে যা মিলবে কিন্তু কম বিশিষ্ট। Google এর সূচকে স্থানের র‍্যাঙ্কিং, বিশ্বব্যাপী জনপ্রিয়তা এবং অন্যান্য কারণগুলির দ্বারা বিশিষ্টতা প্রভাবিত হতে পারে। যখন google.maps.places.RankBy.PROMINENCE নির্দিষ্ট করা হয়, তখন radius প্যারামিটারটি প্রয়োজন।
    • google.maps.places.RankBy.DISTANCE । এই বিকল্পটি নির্দিষ্ট location থেকে তাদের দূরত্ব অনুসারে ঊর্ধ্বমুখী ক্রমে ফলাফল সাজায় (প্রয়োজনীয়)। মনে রাখবেন যে আপনি যদি RankBy.DISTANCE নির্দিষ্ট করেন তবে আপনি একটি কাস্টম bounds এবং/অথবা radius নির্দিষ্ট করতে পারবেন না। যখন আপনি RankBy.DISTANCE নির্দিষ্ট করেন, তখন এক বা একাধিক keyword , name , বা type প্রয়োজন।
  • type — নির্দিষ্ট ধরণের সাথে মিলে যাওয়া স্থানগুলিতে ফলাফল সীমাবদ্ধ করে। শুধুমাত্র একটি টাইপ নির্দিষ্ট করা যেতে পারে (যদি একাধিক টাইপ প্রদান করা হয়, তাহলে প্রথম এন্ট্রির পরবর্তী সকল টাইপ উপেক্ষা করা হবে)। সমর্থিত টাইপের তালিকা দেখুন।

ফলাফল অবজেক্ট এবং google.maps.places.PlacesServiceStatus প্রতিক্রিয়া পরিচালনা করার জন্য আপনাকে nearbySearch() এ একটি কলব্যাক পদ্ধতিও পাস করতে হবে।

var map;
var service;
var infowindow;

function initialize() {
  var pyrmont = new google.maps.LatLng(-33.8665433, 151.1956316);

  map = new google.maps.Map(document.getElementById('map'), {
      center: pyrmont,
      zoom: 15
    });

  var request = {
    location: pyrmont,
    radius: 500,
    type: 'restaurant'
  };

  service = new google.maps.places.PlacesService(map);
  service.nearbySearch(request, callback);
}

function callback(results, status) {
  if (status == google.maps.places.PlacesServiceStatus.OK) {
    for (var i = 0; i < results.length; i++) {
      createMarker(results[i]);
    }
  }
}

উদাহরণ দেখুন

টেক্সট সার্চের অনুরোধ

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

PlacesService এর textSearch() পদ্ধতিতে কল করার মাধ্যমে টেক্সট অনুসন্ধান শুরু হয়।

service = new google.maps.places.PlacesService(map);
service.textSearch(request, callback);

এই পদ্ধতিটি নিম্নলিখিত ক্ষেত্রগুলির সাথে একটি অনুরোধ গ্রহণ করে:

  • query ( প্রয়োজনীয় ) যে টেক্সট স্ট্রিংটিতে অনুসন্ধান করতে হবে, উদাহরণস্বরূপ: "রেস্তোরাঁ" অথবা "১২৩ মেইন স্ট্রিট"। এটি অবশ্যই একটি স্থানের নাম, ঠিকানা, অথবা প্রতিষ্ঠানের বিভাগ হতে হবে। অন্য যেকোনো ধরণের ইনপুট ত্রুটি তৈরি করতে পারে এবং বৈধ ফলাফল ফেরত দেওয়ার নিশ্চয়তা দেয় না। প্লেসেস পরিষেবা এই স্ট্রিংয়ের উপর ভিত্তি করে প্রার্থীর মিলগুলি ফেরত দেবে এবং তাদের অনুভূত প্রাসঙ্গিকতার উপর ভিত্তি করে ফলাফলগুলি অর্ডার করবে। অনুসন্ধান অনুরোধে type প্যারামিটারটি ব্যবহার করা হলে এই প্যারামিটারটি ঐচ্ছিক হয়ে যায়।
  • ঐচ্ছিকভাবে:
    • openNow — একটি বুলিয়ান মান, যা নির্দেশ করে যে Places পরিষেবা শুধুমাত্র সেইসব স্থান ফেরত দেবে যেগুলি কোয়েরি পাঠানোর সময় ব্যবসার জন্য খোলা ছিল। Google Places ডাটাবেসে খোলার সময় নির্দিষ্ট করে না এমন স্থানগুলি যদি আপনি আপনার কোয়েরিতে এই প্যারামিটারটি অন্তর্ভুক্ত করেন তবে ফেরত দেওয়া হবে না। openNow কে false এ সেট করলে কোনও প্রভাব পড়বে না।
    • minPriceLevel এবং maxPriceLevel — ফলাফল শুধুমাত্র নির্দিষ্ট মূল্য স্তরের মধ্যে সীমাবদ্ধ করে। বৈধ মানগুলি 0 (সবচেয়ে সাশ্রয়ী মূল্যের) থেকে 4 (সবচেয়ে ব্যয়বহুল) পর্যন্ত, সমেত।
    • যেকোনো একটি:
      • bounds , যা অবশ্যই একটি google.maps.LatLngBounds অবজেক্ট হতে হবে যা আয়তক্ষেত্রাকার অনুসন্ধান এলাকা নির্ধারণ করে। সীমানা এলাকার জন্য সর্বাধিক সমর্থিত তির্যক দূরত্ব প্রায় 100,000 মিটার।
      • একটি location এবং একটি radius — আপনি একটি location এবং একটি radius প্যারামিটার পাস করে একটি নির্দিষ্ট বৃত্তে ফলাফলগুলিকে পক্ষপাত করতে পারেন। এটি প্লেস পরিষেবাকে সেই বৃত্তের মধ্যে ফলাফল দেখানো পছন্দ করার নির্দেশ দেবে। নির্ধারিত এলাকার বাইরের ফলাফলগুলি এখনও প্রদর্শিত হতে পারে। অবস্থানটি একটি google.maps.LatLng বস্তু নেয় এবং ব্যাসার্ধটি একটি সাধারণ পূর্ণসংখ্যা নেয়, যা বৃত্তের ব্যাসার্ধকে মিটারে প্রতিনিধিত্ব করে। সর্বাধিক অনুমোদিত ব্যাসার্ধ হল 50,000 মিটার।
    • type — নির্দিষ্ট ধরণের সাথে মিলে যাওয়া স্থানগুলিতে ফলাফল সীমাবদ্ধ করে। শুধুমাত্র একটি টাইপ নির্দিষ্ট করা যেতে পারে (যদি একাধিক টাইপ প্রদান করা হয়, তাহলে প্রথম এন্ট্রির পরবর্তী সকল টাইপ উপেক্ষা করা হবে)। সমর্থিত টাইপের তালিকা দেখুন।

ফলাফল অবজেক্ট এবং google.maps.places.PlacesServiceStatus প্রতিক্রিয়া পরিচালনা করার জন্য আপনাকে textSearch() এ একটি কলব্যাক পদ্ধতিও পাস করতে হবে।

var map;
var service;
var infowindow;

function initialize() {
  var pyrmont = new google.maps.LatLng(-33.8665433,151.1956316);

  map = new google.maps.Map(document.getElementById('map'), {
      center: pyrmont,
      zoom: 15
    });

  var request = {
    location: pyrmont,
    radius: 500,
    query: 'restaurant'
  };

  service = new google.maps.places.PlacesService(map);
  service.textSearch(request, callback);
}

function callback(results, status) {
  if (status == google.maps.places.PlacesServiceStatus.OK) {
    for (var i = 0; i < results.length; i++) {
      var place = results[i];
      createMarker(results[i]);
    }
  }
}

অনুসন্ধান প্রতিক্রিয়া

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

PlacesServiceStatus রেসপন্স অবজেক্টে অনুরোধের স্থিতি থাকে এবং এতে ডিবাগিং তথ্য থাকতে পারে যা আপনাকে স্থানের অনুরোধ কেন ব্যর্থ হয়েছে তা ট্র্যাক করতে সাহায্য করবে। সম্ভাব্য স্থিতির মানগুলি হল:

  • INVALID_REQUEST : এই অনুরোধটি অবৈধ ছিল।
  • OK : প্রতিক্রিয়াটিতে একটি বৈধ ফলাফল রয়েছে।
  • OVER_QUERY_LIMIT : ওয়েবপৃষ্ঠাটি তার অনুরোধের কোটা অতিক্রম করেছে।
  • REQUEST_DENIED : ওয়েবপৃষ্ঠাটি PlacesService ব্যবহার করার অনুমতিপ্রাপ্ত নয়।
  • UNKNOWN_ERROR : সার্ভার ত্রুটির কারণে PlaceService অনুরোধটি প্রক্রিয়া করা যায়নি। আবার চেষ্টা করলে অনুরোধটি সফল হতে পারে।
  • ZERO_RESULTS : এই অনুরোধের জন্য কোন ফলাফল পাওয়া যায়নি।

স্থান অনুসন্ধানের ফলাফল

findPlace() , nearbySearch() এবং textSearch() ফাংশনগুলি PlaceResult অবজেক্টের একটি অ্যারে ফেরত দেয়।

প্রতিটি PlaceResult অবজেক্টে নিম্নলিখিত বৈশিষ্ট্য থাকতে পারে:

  • business_status যদি কোনও ব্যবসা হয়, তাহলে সেই স্থানের কার্যক্ষম অবস্থা নির্দেশ করে। এতে নিম্নলিখিত মানগুলির মধ্যে একটি থাকতে পারে:
    • OPERATIONAL
    • CLOSED_TEMPORARILY
    • CLOSED_PERMANENTLY
    যদি কোনও ডেটা না থাকে, তাহলে business_status ফেরত দেওয়া হবে না।
  • formatted_address হল একটি স্ট্রিং যার মধ্যে এই স্থানের মানুষের পঠনযোগ্য ঠিকানা রয়েছে। formatted_address বৈশিষ্ট্যটি শুধুমাত্র একটি Text Search এর জন্য ফেরত পাঠানো হয়।

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

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

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

  • geometry : স্থানের জ্যামিতি-সম্পর্কিত তথ্য। এর মধ্যে রয়েছে:
    • location স্থানের অক্ষাংশ এবং দ্রাঘিমাংশ প্রদান করে।
    • এই স্থানটি দেখার সময় viewport মানচিত্রে পছন্দের ভিউপোর্টটি সংজ্ঞায়িত করে।
  • permanently_closed ( deprecated ) is a boolean flag indicating whether the place has shut down either permanently or temporarily (value true ). Don't use permanently_closed . Instead, use business_status to get the operational status of businesses.
  • plus_code ( ওপেন লোকেশন কোড এবং প্লাস কোড দেখুন) হল একটি এনকোডেড লোকেশন রেফারেন্স, যা অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্ক থেকে প্রাপ্ত, যা একটি ক্ষেত্রফলকে প্রতিনিধিত্ব করে: ১/৮০০০তম ডিগ্রি বাই ১/৮০০০তম ডিগ্রি (নিরক্ষরেখায় প্রায় ১৪ মি x ১৪ মি) বা তার চেয়ে ছোট। প্লাস কোডগুলি এমন জায়গায় রাস্তার ঠিকানার প্রতিস্থাপন হিসাবে ব্যবহার করা যেতে পারে যেখানে সেগুলি বিদ্যমান নেই (যেখানে ভবনগুলি নম্বরযুক্ত নয় বা রাস্তার নামকরণ করা হয়নি)।

    প্লাস কোডটি একটি গ্লোবাল কোড এবং একটি যৌগিক কোড হিসাবে ফর্ম্যাট করা হয়েছে:

    • global_code হল একটি 4 অক্ষরের এরিয়া কোড এবং 6 অক্ষর বা তার বেশি লম্বা স্থানীয় কোড (849VCWC8+R9)।
    • compound_code হল ৬ অক্ষর বা তার বেশি লম্বা একটি স্থানীয় কোড যার একটি স্পষ্ট অবস্থান রয়েছে (CWC8+R9, মাউন্টেন ভিউ, CA, USA)। এই কন্টেন্টটি প্রোগ্রাম্যাটিকভাবে পার্স করবেন না।
    সাধারণত, গ্লোবাল কোড এবং কম্পাউন্ড কোড উভয়ই ফেরত দেওয়া হয়। তবে, যদি ফলাফলটি কোনও দূরবর্তী স্থানে (উদাহরণস্বরূপ, একটি সমুদ্র বা মরুভূমিতে) হয় তবে কেবল গ্লোবাল কোডটি ফেরত দেওয়া যেতে পারে।
  • html_attributions : অনুসন্ধান ফলাফল প্রদর্শনের সময় আপনার প্রদর্শিত হওয়া উচিত এমন একটি অ্যাট্রিবিউশন অ্যারে। অ্যারের প্রতিটি এন্ট্রিতে একটি একক অ্যাট্রিবিউশনের জন্য HTML টেক্সট থাকে। দ্রষ্টব্য: এটি সম্পূর্ণ অনুসন্ধান প্রতিক্রিয়ার জন্য সমস্ত অ্যাট্রিবিউশনের একটি সমষ্টি। অতএব, প্রতিক্রিয়ার সমস্ত PlaceResult অবজেক্টে অভিন্ন অ্যাট্রিবিউশন তালিকা রয়েছে।
  • icon একটি রঙিন 71px x 71px PNG আইকনের URL প্রদান করে।
  • icon_mask_base_uri একটি অ-রঙিন আইকনের জন্য বেস URL প্রদান করে, .svg বা .png এক্সটেনশন বাদ দিয়ে।
  • icon_background_color স্থানের বিভাগের জন্য ডিফল্ট HEX রঙের কোড প্রদান করে।
  • name : জায়গার নাম।
  • opening_hours নিম্নলিখিত তথ্য থাকতে পারে:
    • open_now হল একটি বুলিয়ান মান যা নির্দেশ করে যে স্থানটি বর্তমান সময়ে খোলা আছে কিনা (Places Library, Maps JavaScript API-তে অবচিত , পরিবর্তে utc_offset_minutes ব্যবহার করুন)।
  • place_id হল একটি টেক্সট শনাক্তকারী যা একটি স্থানকে অনন্যভাবে শনাক্ত করে। স্থান সম্পর্কে তথ্য পুনরুদ্ধার করতে, স্থানের বিবরণ অনুরোধে এই শনাক্তকারীটি পাস করুন। স্থান আইডি দিয়ে একটি স্থান কীভাবে উল্লেখ করবেন সে সম্পর্কে আরও জানুন।
  • rating স্থানটির রেটিং রয়েছে, ০.০ থেকে ৫.০ পর্যন্ত, যা ব্যবহারকারীদের সমষ্টিগত পর্যালোচনার উপর ভিত্তি করে।
  • types এই স্থানের জন্য বিভিন্ন ধরণের (যেমন, ["political", "locality"] অথবা ["restaurant", "lodging"] )। এই অ্যারেতে একাধিক মান থাকতে পারে, অথবা খালি থাকতে পারে। পূর্ব নোটিশ ছাড়াই নতুন মান চালু করা যেতে পারে। সমর্থিত প্রকারের তালিকা দেখুন।
  • vicinity : স্থানের জন্য একটি সরলীকৃত ঠিকানা, যার মধ্যে রাস্তার নাম, রাস্তার নম্বর এবং এলাকা অন্তর্ভুক্ত থাকবে, কিন্তু প্রদেশ/রাজ্য, পোস্টাল কোড বা দেশ থাকবে না। উদাহরণস্বরূপ, গুগলের সিডনি, অস্ট্রেলিয়া অফিসের vicinity মান 5/48 Pirrama Road, Pyrmont

অতিরিক্ত ফলাফল অ্যাক্সেস করুন

ডিফল্টরূপে, প্রতিটি স্থান অনুসন্ধান প্রতিটি প্রশ্নের জন্য সর্বাধিক ২০টি ফলাফল প্রদান করে। তবে, প্রতিটি অনুসন্ধান তিনটি পৃষ্ঠায় বিভক্ত করে ৬০টি ফলাফল প্রদান করতে পারে। PlaceSearchPagination অবজেক্ট ব্যবহার করে অতিরিক্ত পৃষ্ঠা পাওয়া যায়। অতিরিক্ত পৃষ্ঠা অ্যাক্সেস করার জন্য আপনাকে একটি কলব্যাক ফাংশন ব্যবহার করে PlaceSearchPagination অবজেক্টটি ক্যাপচার করতে হবে। PlaceSearchPagination অবজেক্টটি এইভাবে সংজ্ঞায়িত করা হয়েছে:

  • hasNextPage একটি বুলিয়ান বৈশিষ্ট্য যা নির্দেশ করে যে আরও ফলাফল উপলব্ধ কিনা। যখন একটি অতিরিক্ত ফলাফল পৃষ্ঠা থাকে তখন true
  • nextPage() একটি ফাংশন যা পরবর্তী ফলাফলের সেটটি ফেরত দেবে। একটি অনুসন্ধান সম্পাদন করার পরে, পরবর্তী ফলাফলের পৃষ্ঠাটি উপলব্ধ হওয়ার আগে আপনাকে দুই সেকেন্ড অপেক্ষা করতে হবে।

পরবর্তী ফলাফল দেখতে, nextPage কল করুন। পরবর্তী ফলাফল প্রদর্শনের আগে প্রতিটি ফলাফলের পৃষ্ঠা প্রদর্শন করতে হবে। মনে রাখবেন যে প্রতিটি অনুসন্ধান আপনার ব্যবহারের সীমার বিপরীতে একটি একক অনুরোধ হিসাবে গণনা করা হবে।

নিচের উদাহরণটি দেখায় যে কীভাবে আপনার কলব্যাক ফাংশনটি PlaceSearchPagination অবজেক্ট ক্যাপচার করার জন্য পরিবর্তন করবেন, যাতে আপনি একাধিক অনুসন্ধান অনুরোধ ইস্যু করতে পারেন।

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

// This example requires the Places library. Include the libraries=places
// parameter when you first load the API. For example:
// <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places">

function initMap(): void {
  // Create the map.
  const pyrmont = { lat: -33.866, lng: 151.196 };
  const map = new google.maps.Map(
    document.getElementById("map") as HTMLElement,
    {
      center: pyrmont,
      zoom: 17,
      mapId: "8d193001f940fde3",
    } as google.maps.MapOptions
  );

  // Create the places service.
  const service = new google.maps.places.PlacesService(map);
  let getNextPage: () => void | false;
  const moreButton = document.getElementById("more") as HTMLButtonElement;

  moreButton.onclick = function () {
    moreButton.disabled = true;

    if (getNextPage) {
      getNextPage();
    }
  };

  // Perform a nearby search.
  service.nearbySearch(
    { location: pyrmont, radius: 500, type: "store" },
    (
      results: google.maps.places.PlaceResult[] | null,
      status: google.maps.places.PlacesServiceStatus,
      pagination: google.maps.places.PlaceSearchPagination | null
    ) => {
      if (status !== "OK" || !results) return;

      addPlaces(results, map);
      moreButton.disabled = !pagination || !pagination.hasNextPage;

      if (pagination && pagination.hasNextPage) {
        getNextPage = () => {
          // Note: nextPage will call the same handler function as the initial call
          pagination.nextPage();
        };
      }
    }
  );
}

function addPlaces(
  places: google.maps.places.PlaceResult[],
  map: google.maps.Map
) {
  const placesList = document.getElementById("places") as HTMLElement;

  for (const place of places) {
    if (place.geometry && place.geometry.location) {
      const image = {
        url: place.icon!,
        size: new google.maps.Size(71, 71),
        origin: new google.maps.Point(0, 0),
        anchor: new google.maps.Point(17, 34),
        scaledSize: new google.maps.Size(25, 25),
      };

      new google.maps.Marker({
        map,
        icon: image,
        title: place.name!,
        position: place.geometry.location,
      });

      const li = document.createElement("li");

      li.textContent = place.name!;
      placesList.appendChild(li);

      li.addEventListener("click", () => {
        map.setCenter(place.geometry!.location!);
      });
    }
  }
}

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

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

// This example requires the Places library. Include the libraries=places
// parameter when you first load the API. For example:
// <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places">
function initMap() {
  // Create the map.
  const pyrmont = { lat: -33.866, lng: 151.196 };
  const map = new google.maps.Map(document.getElementById("map"), {
    center: pyrmont,
    zoom: 17,
    mapId: "8d193001f940fde3",
  });
  // Create the places service.
  const service = new google.maps.places.PlacesService(map);
  let getNextPage;
  const moreButton = document.getElementById("more");

  moreButton.onclick = function () {
    moreButton.disabled = true;
    if (getNextPage) {
      getNextPage();
    }
  };

  // Perform a nearby search.
  service.nearbySearch(
    { location: pyrmont, radius: 500, type: "store" },
    (results, status, pagination) => {
      if (status !== "OK" || !results) return;

      addPlaces(results, map);
      moreButton.disabled = !pagination || !pagination.hasNextPage;
      if (pagination && pagination.hasNextPage) {
        getNextPage = () => {
          // Note: nextPage will call the same handler function as the initial call
          pagination.nextPage();
        };
      }
    },
  );
}

function addPlaces(places, map) {
  const placesList = document.getElementById("places");

  for (const place of places) {
    if (place.geometry && place.geometry.location) {
      const image = {
        url: place.icon,
        size: new google.maps.Size(71, 71),
        origin: new google.maps.Point(0, 0),
        anchor: new google.maps.Point(17, 34),
        scaledSize: new google.maps.Size(25, 25),
      };

      new google.maps.Marker({
        map,
        icon: image,
        title: place.name,
        position: place.geometry.location,
      });

      const li = document.createElement("li");

      li.textContent = place.name;
      placesList.appendChild(li);
      li.addEventListener("click", () => {
        map.setCenter(place.geometry.location);
      });
    }
  }
}

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

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

স্থানের বিবরণ

In addition to providing a list of places within an area, the Places service can also return detailed information about a specific place. Once a place has been returned in a place search response, its place ID can be used to request additional details about that place, such as its complete address, phone number, user rating and reviews, etc.

স্থানের বিবরণের অনুরোধ

পরিষেবার getDetails() পদ্ধতিতে কল করে স্থানের বিবরণ অনুরোধ করা হয়।

service = new google.maps.places.PlacesService(map);
service.getDetails(request, callback);

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

এটি একটি কলব্যাক পদ্ধতিও গ্রহণ করে, যা google.maps.places.PlacesServiceStatus প্রতিক্রিয়ায় পাস করা স্ট্যাটাস কোড, সেইসাথে google.maps.places.PlaceResult অবজেক্ট পরিচালনা করতে হবে।

var request = {
  placeId: 'ChIJN1t_tDeuEmsRUsoyG83frY4',
  fields: ['name', 'rating', 'formatted_phone_number', 'geometry']
};

service = new google.maps.places.PlacesService(map);
service.getDetails(request, callback);

function callback(place, status) {
  if (status == google.maps.places.PlacesServiceStatus.OK) {
    createMarker(place);
  }
}

উদাহরণ দেখুন

ক্ষেত্র (স্থানের বিবরণ)

fields প্যারামিটারটি স্ট্রিংগুলির একটি অ্যারে (ক্ষেত্রের নাম) নেয়।

fields প্যারামিটার ব্যবহার করে প্লেস ডেটা টাইপের একটি অ্যারে নির্দিষ্ট করুন যা ফেরত পাঠানো হবে। উদাহরণস্বরূপ: fields: ['address_components', 'opening_hours', 'geometry'] । যৌগিক মান নির্দিষ্ট করার সময় একটি বিন্দু ব্যবহার করুন। উদাহরণস্বরূপ: opening_hours.weekday_text

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

মৌলিক

মৌলিক বিভাগে নিম্নলিখিত ক্ষেত্রগুলি অন্তর্ভুক্ত রয়েছে:
address_components , adr_address , business_status , formatted_address , geometry , icon , icon_mask_base_uri , icon_background_color , name , permanently_closed ( অপ্রচলিত ), photo , place_id , plus_code , type , url , utc_offset (প্লেসেস লাইব্রেরিতে অপ্রচলিত , ম্যাপস জাভাস্ক্রিপ্ট এপিআই), utc_offset_minutes , vicinity

যোগাযোগ

যোগাযোগ বিভাগে নিম্নলিখিত ক্ষেত্রগুলি অন্তর্ভুক্ত রয়েছে:
formatted_phone_number , international_phone_number , opening_hours , website

বায়ুমণ্ডল

বায়ুমণ্ডল বিভাগে নিম্নলিখিত ক্ষেত্রগুলি অন্তর্ভুক্ত রয়েছে: price_level , rating , reviews , user_ratings_total

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

স্থানের বিবরণের প্রতিক্রিয়া

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

PlacesServiceStatus রেসপন্স অবজেক্টে অনুরোধের স্থিতি থাকে এবং এতে ডিবাগিং তথ্য থাকতে পারে যা আপনাকে স্থানের বিবরণের অনুরোধ কেন ব্যর্থ হয়েছে তা ট্র্যাক করতে সাহায্য করবে। সম্ভাব্য স্থিতির মানগুলি হল:

  • INVALID_REQUEST : এই অনুরোধটি অবৈধ ছিল।
  • OK : প্রতিক্রিয়াটিতে একটি বৈধ ফলাফল রয়েছে।
  • OVER_QUERY_LIMIT : ওয়েবপৃষ্ঠাটি তার অনুরোধের কোটা অতিক্রম করেছে।
  • NOT_FOUND উল্লেখিত অবস্থানটি স্থানের ডাটাবেসে পাওয়া যায়নি।
  • REQUEST_DENIED : ওয়েবপৃষ্ঠাটি PlacesService ব্যবহার করার অনুমতিপ্রাপ্ত নয়।
  • UNKNOWN_ERROR : সার্ভার ত্রুটির কারণে PlaceService অনুরোধটি প্রক্রিয়া করা যায়নি। আবার চেষ্টা করলে অনুরোধটি সফল হতে পারে।
  • ZERO_RESULTS : এই অনুরোধের জন্য কোন ফলাফল পাওয়া যায়নি।

স্থানের বিবরণের ফলাফল

একটি সফল getDetails() কল নিম্নলিখিত বৈশিষ্ট্য সহ একটি PlaceResult অবজেক্ট ফেরত পাঠায়:

  • address_components : এই ঠিকানার জন্য প্রযোজ্য পৃথক উপাদান ধারণকারী একটি অ্যারে।

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

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

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

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

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

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

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

  • formatted_phone_number : স্থানের ফোন নম্বর, নম্বরের আঞ্চলিক রীতি অনুসারে ফর্ম্যাট করা।
  • geometry : স্থানের জ্যামিতি-সম্পর্কিত তথ্য। এর মধ্যে রয়েছে:
    • location স্থানের অক্ষাংশ এবং দ্রাঘিমাংশ প্রদান করে।
    • এই স্থানটি দেখার সময় viewport মানচিত্রে পছন্দের ভিউপোর্টটি সংজ্ঞায়িত করে।
  • permanently_closed ( deprecated ) হল একটি বুলিয়ান পতাকা যা নির্দেশ করে যে স্থানটি স্থায়ীভাবে নাকি অস্থায়ীভাবে বন্ধ হয়ে গেছে (মান true )। permanently_closed ব্যবহার করবেন না। পরিবর্তে, ব্যবসার কর্মক্ষম অবস্থা জানতে business_status ব্যবহার করুন।
  • plus_code ( ওপেন লোকেশন কোড এবং প্লাস কোড দেখুন) হল একটি এনকোডেড লোকেশন রেফারেন্স, যা অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্ক থেকে প্রাপ্ত, যা একটি ক্ষেত্রফলকে প্রতিনিধিত্ব করে: ১/৮০০০তম ডিগ্রি বাই ১/৮০০০তম ডিগ্রি (নিরক্ষরেখায় প্রায় ১৪ মি x ১৪ মি) বা তার চেয়ে ছোট। প্লাস কোডগুলি এমন জায়গায় রাস্তার ঠিকানার প্রতিস্থাপন হিসাবে ব্যবহার করা যেতে পারে যেখানে সেগুলি বিদ্যমান নেই (যেখানে ভবনগুলি নম্বরযুক্ত নয় বা রাস্তার নামকরণ করা হয়নি)।

    প্লাস কোডটি একটি গ্লোবাল কোড এবং একটি যৌগিক কোড হিসাবে ফর্ম্যাট করা হয়েছে:

    • global_code হল একটি 4 অক্ষরের এরিয়া কোড এবং 6 অক্ষর বা তার বেশি লম্বা স্থানীয় কোড (849VCWC8+R9)।
    • compound_code হল ৬ অক্ষর বা তার বেশি লম্বা একটি স্থানীয় কোড যার একটি স্পষ্ট অবস্থান রয়েছে (CWC8+R9, মাউন্টেন ভিউ, CA, USA)। এই কন্টেন্টটি প্রোগ্রাম্যাটিকভাবে পার্স করবেন না।
    সাধারণত, গ্লোবাল কোড এবং কম্পাউন্ড কোড উভয়ই ফেরত দেওয়া হয়। তবে, যদি ফলাফলটি কোনও দূরবর্তী স্থানে (উদাহরণস্বরূপ, একটি সমুদ্র বা মরুভূমিতে) হয় তবে কেবল গ্লোবাল কোডটি ফেরত দেওয়া যেতে পারে।
  • html_attributions : এই স্থানের ফলাফলের জন্য অ্যাট্রিবিউশন টেক্সট প্রদর্শিত হবে।
  • icon : একটি চিত্র সম্পদের URL যা এই স্থানের ধরণ উপস্থাপন করতে ব্যবহার করা যেতে পারে।
  • international_phone_number এ স্থানটির ফোন নম্বর আন্তর্জাতিক ফর্ম্যাটে থাকে। আন্তর্জাতিক ফর্ম্যাটে দেশের কোড থাকে এবং এর আগে যোগ (+) চিহ্ন থাকে। উদাহরণস্বরূপ, অস্ট্রেলিয়ার সিডনিতে অবস্থিত গুগলের অফিসের international_phone_number হল +61 2 9374 4000
  • name : জায়গার নাম।
  • utc_offset প্লেসেস লাইব্রেরি, ম্যাপস জাভাস্ক্রিপ্ট এপিআই-তে অপ্রচলিত , পরিবর্তে utc_offset_minutes ব্যবহার করুন।
  • utc_offset_minutes এই স্থানের বর্তমান সময় অঞ্চল UTC থেকে অফসেট করা মিনিটের সংখ্যা রয়েছে। উদাহরণস্বরূপ, অস্ট্রেলিয়ার সিডনিতে দিবালোক সংরক্ষণের সময়কালে এটি 660 (UTC থেকে +11 ঘন্টা) হবে, এবং ক্যালিফোর্নিয়ার দিবালোক সংরক্ষণের সময়কালের বাইরের স্থানগুলির জন্য এটি -480 (UTC থেকে -8 ঘন্টা) হবে।
  • opening_hours নিম্নলিখিত তথ্য রয়েছে:
    • open_now ( Places Library, Maps JavaScript API-তে অবচিত ; এর পরিবর্তে opening_hours.isOpen() ব্যবহার করুন। Place Details সহ isOpen কীভাবে ব্যবহার করবেন তার জন্য, Places API ভিডিওতে খোলার সময় কীভাবে পাবেন তা দেখুন।) `open_now` হল একটি বুলিয়ান মান যা নির্দেশ করে যে স্থানটি বর্তমান সময়ে খোলা আছে কিনা।
    • periods[] হল কালানুক্রমিক ক্রমে রবিবার থেকে শুরু করে সাত দিনব্যাপী খোলার পিরিয়ডের একটি বিন্যাস। প্রতিটি পিরিয়ডে রয়েছে:
      • open দিন এবং সময় অবজেক্টের একটি জোড়া থাকে যা বর্ণনা করে যে স্থানটি কখন খোলে:
        • ০-৬ এর মধ্যে একটি day , যা রবিবার থেকে শুরু হওয়া সপ্তাহের দিনগুলির সাথে সম্পর্কিত। উদাহরণস্বরূপ, ২ মানে মঙ্গলবার।
        • time মধ্যে ২৪ ঘন্টার hhmm ফর্ম্যাটে দিনের একটি সময় থাকতে পারে (মানগুলি 0000–2359 এর মধ্যে)। time স্থানের সময় অঞ্চলে রিপোর্ট করা হবে।
      • close স্থানটি কখন বন্ধ হবে তা বর্ণনা করে দিন এবং সময় অবজেক্টের একটি জোড়া থাকতে পারে। দ্রষ্টব্য: যদি একটি স্থান সর্বদা খোলা থাকে, তাহলে প্রতিক্রিয়া থেকে close অংশটি অনুপস্থিত থাকবে। অ্যাপ্লিকেশনগুলি সর্বদা-খোলাকে একটি open সময়কাল হিসাবে উপস্থাপন করার উপর নির্ভর করতে পারে যেখানে 0 মান সহ day এবং 0000 মান সহ time এবং কোনও close না।
    • weekday_text হল সাতটি স্ট্রিং এর একটি অ্যারে যা সপ্তাহের প্রতিটি দিনের জন্য ফর্ম্যাট করা খোলার সময়কে প্রতিনিধিত্ব করে। যদি প্লেস ডিটেইলস অনুরোধে কোনও language প্যারামিটার নির্দিষ্ট করা থাকে, তাহলে প্লেস সার্ভিস সেই ভাষার জন্য উপযুক্তভাবে খোলার সময়গুলিকে ফর্ম্যাট এবং স্থানীয়করণ করবে। এই অ্যারের উপাদানগুলির ক্রম language প্যারামিটারের উপর নির্ভর করে। কিছু ভাষা সোমবারে সপ্তাহ শুরু করে আবার কিছু রবিবারে শুরু করে।
  • permanently_closed ( deprecated ) হল একটি বুলিয়ান পতাকা যা নির্দেশ করে যে স্থানটি স্থায়ীভাবে নাকি অস্থায়ীভাবে বন্ধ হয়ে গেছে (মান true )। permanently_closed ব্যবহার করবেন না। পরিবর্তে, ব্যবসার কর্মক্ষম অবস্থা জানতে business_status ব্যবহার করুন।
  • photos[] : PlacePhoto অবজেক্টের একটি অ্যারে। getUrl() পদ্ধতি ব্যবহার করে একটি ছবি পেতে PlacePhoto ব্যবহার করা যেতে পারে, অথবা আপনি নিম্নলিখিত মানগুলির জন্য বস্তুটি পরিদর্শন করতে পারেন:
    • height : ছবির সর্বোচ্চ উচ্চতা, পিক্সেলে।
    • width : ছবির সর্বোচ্চ প্রস্থ, পিক্সেলে।
    • html_attributions : এই স্থানের ছবির সাথে অ্যাট্রিবিউশন টেক্সট প্রদর্শিত হবে।
  • place_id : একটি টেক্সটুয়াল আইডেন্টিফায়ার যা একটি স্থানকে অনন্যভাবে শনাক্ত করে এবং স্থানের বিবরণ অনুরোধ ব্যবহার করে স্থান সম্পর্কে তথ্য পুনরুদ্ধার করতে ব্যবহার করা যেতে পারে। স্থান আইডি দিয়ে একটি স্থান কীভাবে উল্লেখ করবেন সে সম্পর্কে আরও জানুন।
  • rating : স্থানটির রেটিং, ০.০ থেকে ৫.০ পর্যন্ত, সমষ্টিগত ব্যবহারকারী পর্যালোচনার উপর ভিত্তি করে।
  • পাঁচটি পর্যন্ত পর্যালোচনার একটি অ্যারে reviews । প্রতিটি পর্যালোচনায় বেশ কয়েকটি উপাদান থাকে:
    • aspects[] তে PlaceAspectRating অবজেক্টের একটি অ্যারে রয়েছে, যার প্রতিটি প্রতিষ্ঠানের একটি একক বৈশিষ্ট্যের রেটিং প্রদান করে। অ্যারের প্রথম অবজেক্টটিকে প্রাথমিক দিক হিসেবে বিবেচনা করা হয়। প্রতিটি PlaceAspectRating এভাবে সংজ্ঞায়িত করা হয়:
      • যে দিকের রেটিং করা হচ্ছে তার নাম type । নিম্নলিখিত প্রকারগুলি সমর্থিত: appeal , atmosphere , decor , facilities , food , overall , quality এবং service
      • এই বিশেষ দিকের জন্য ব্যবহারকারীর রেটিং 0 থেকে 3 পর্যন্ত rating
    • author_name পর্যালোচনা জমা দেওয়া ব্যবহারকারীর নাম। বেনামী পর্যালোচনাগুলি "একজন গুগল ব্যবহারকারী" এর জন্য দায়ী করা হয়। যদি একটি ভাষার প্যারামিটার সেট করা থাকে, তাহলে "একজন গুগল ব্যবহারকারী" বাক্যাংশটি একটি স্থানীয় স্ট্রিং ফিরিয়ে দেবে।
    • ব্যবহারকারীর Google+ প্রোফাইলের URL টি author_url , যদি পাওয়া যায়।
    • language একটি IETF ভাষা কোড যা ব্যবহারকারীর পর্যালোচনায় ব্যবহৃত ভাষা নির্দেশ করে। এই ক্ষেত্রে কেবল প্রধান ভাষার ট্যাগ রয়েছে, দেশ বা অঞ্চল নির্দেশকারী গৌণ ট্যাগ নয়। উদাহরণস্বরূপ, সমস্ত ইংরেজি পর্যালোচনা 'en' হিসাবে ট্যাগ করা হয়েছে, 'en-AU' বা 'en-UK' হিসাবে নয়।
    • এই জায়গার জন্য ব্যবহারকারীর সামগ্রিক rating । এটি একটি পূর্ণ সংখ্যা, ১ থেকে ৫ পর্যন্ত।
    • ব্যবহারকারীর পর্যালোচনা text । Google Places-এর মাধ্যমে কোনও অবস্থান পর্যালোচনা করার সময়, টেক্সট পর্যালোচনা ঐচ্ছিক বলে বিবেচিত হয়; তাই, এই ক্ষেত্রটি খালি থাকতে পারে।
  • types এই স্থানের জন্য বিভিন্ন ধরণের (যেমন, ["political", "locality"] অথবা ["restaurant", "lodging"] )। এই অ্যারেতে একাধিক মান থাকতে পারে, অথবা খালি থাকতে পারে। পূর্ব নোটিশ ছাড়াই নতুন মান চালু করা যেতে পারে। সমর্থিত প্রকারের তালিকা দেখুন।
  • url : এই জায়গার অফিসিয়াল গুগল পেজের URL। এটি গুগলের মালিকানাধীন পেজ যেখানে জায়গা সম্পর্কে সবচেয়ে ভালো তথ্য রয়েছে। অ্যাপ্লিকেশনগুলিকে এই পৃষ্ঠাটির সাথে লিঙ্ক করতে হবে অথবা যেকোনো স্ক্রিনে এম্বেড করতে হবে যা ব্যবহারকারীকে জায়গা সম্পর্কে বিস্তারিত ফলাফল দেখায়।
  • vicinity : A simplified address for the place, including the street name, street number, and locality, but not the province/state, postal code, or country. For example, Google's Sydney, Australia office has a vicinity value of 5/48 Pirrama Road, Pyrmont . The vicinity property is only returned for a Nearby Search .
  • website lists the authoritative website for this place, such as a business' homepage.

Note: Multidimensional ratings may not be available for all locations. If there are too few reviews then the details response will either include a legacy rating on a 0.0 to 5.0 scale (if available) or no rating at all.

Reference a Place with a Place ID

A place ID is a unique reference to a place on a Google Map. Place IDs are available for most locations, including businesses, landmarks, parks, and intersections.

To use a place ID in your app you must first look up the ID, which is available in PlaceResult of a Place Search or Details request. You can then use this place ID to look up Place Details .

Place IDs are exempt from the caching restrictions stated in Section 3.2.3(b) of the Google Maps Platform Terms of Service. You can therefore store place ID values for later use. For best practises when storing place IDs, see the place ID overview .

var map;

function initialize() {
  // Create a map centered in Pyrmont, Sydney (Australia).
  map = new google.maps.Map(document.getElementById('map'), {
    center: {lat: -33.8666, lng: 151.1958},
    zoom: 15
  });

  // Search for Google's office in Australia.
  var request = {
    location: map.getCenter(),
    radius: '500',
    query: 'Google Sydney'
  };

  var service = new google.maps.places.PlacesService(map);
  service.textSearch(request, callback);
}

// Checks that the PlacesServiceStatus is OK, and adds a marker
// using the place ID and location from the PlacesService.
function callback(results, status) {
  if (status == google.maps.places.PlacesServiceStatus.OK) {
    var marker = new google.maps.Marker({
      map: map,
      place: {
        placeId: results[0].place_id,
        location: results[0].geometry.location
      }
    });
  }
}

google.maps.event.addDomListener(window, 'load', initialize);

Place Photos

Use the Place Photo feature to add high quality photographic content to your site. The Photo service gives you access to the millions of photos stored in the Places and Google+ Local database. When you get place information using a Place Details request, photo references will be returned for relevant photographic content. The Nearby Search and Text Search requests also return a single photo reference per place, when relevant. Using the Photo service you can then access the referenced photos and resize the image to the optimal size for your application.

An array of PlacePhoto objects will be returned as part of the PlaceResult object for any getDetails() , textSearch() or nearbySearch() request made against a PlacesService .

Note: The number of photos returned varies by request.

  • A Nearby Search or a Text Search will return at most one PlacePhoto object.
  • A Details request will return up to ten PlacePhoto objects.

You can request the URL for the associated image by calling the PlacePhoto.getUrl() method, and passing a valid PhotoOptions object. Use the PhotoOptions object to specify the maximum height and width of the image. If you specify a value for both maxHeight and a maxWidth , the photo service will resize the image to the smaller of the two sizes, while maintaining the original aspect ratio.

The following code snippet accepts a place object, and adds a marker to the map if a photo exists. The default marker image is replaced by a small version of the photo.

function createPhotoMarker(place) {
  var photos = place.photos;
  if (!photos) {
    return;
  }

  var marker = new google.maps.Marker({
    map: map,
    position: place.geometry.location,
    title: place.name,
    icon: photos[0].getUrl({maxWidth: 35, maxHeight: 35})
  });
}

Photos returned by the Photo service are sourced from a variety of locations, including business owners and user contributed photos. In most cases, these photos can be used without attribution, or will have the required attribution included as a part of the image. However, if the returned photo element includes a value in the html_attributions field, you must include the additional attribution in your application wherever you display the image.