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

প্ল্যাটফর্ম নির্বাচন করুন: Android iOS জাভাস্ক্রিপ্ট ওয়েব পরিষেবা

ওভারভিউ

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

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

শুরু হচ্ছে

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

এপিআই সক্ষম করুন

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

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

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

লাইব্রেরি লোড হচ্ছে

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

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

আরও তথ্যের জন্য লাইব্রেরি ওভারভিউ দেখুন।

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

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

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

কোটা

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

নীতিমালা

প্লেস লাইব্রেরির ব্যবহার, মানচিত্র জাভাস্ক্রিপ্ট API অবশ্যই Places API-এর জন্য বর্ণিত নীতি অনুসারে হতে হবে।

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

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

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

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

একটি স্থান খুঁজুন অনুরোধ আপনাকে পাঠ্য ক্যোয়ারী বা ফোন নম্বর দ্বারা একটি স্থান অনুসন্ধান করতে দেয়৷ দুটি ধরণের স্থান সন্ধানের অনুরোধ রয়েছে:

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

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

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

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

নীচের উদাহরণটি "সমসাময়িক আর্ট অস্ট্রেলিয়ার জাদুঘর" এবং name এবং geometry ক্ষেত্রগুলি সহ findPlaceFromQuery() এর জন্য একটি কল দেখায়৷

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 (ঐচ্ছিক) স্থানাঙ্ক অনুসন্ধানের জন্য এলাকা নির্ধারণ করে। এটি নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:

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

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

প্রত্যাবর্তনের জন্য স্থানের ডেটা প্রকারের একটি অ্যারে নির্দিষ্ট করতে 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 ( অপ্রচলিত ), photos , place_id , plus_code , types

যোগাযোগ

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

বায়ুমণ্ডল

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

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

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

একটি নির্দিষ্ট এলাকায় খুঁজুন স্থান অনুকূল ফলাফল করতে 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 বস্তু হতে হবে যা আয়তক্ষেত্রাকার অনুসন্ধান এলাকা নির্ধারণ করে; বা
    • একটি 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]);
    }
  }
}

উদাহরণ দেখুন

পাঠ্য অনুসন্ধান অনুরোধ

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

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

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

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

  • query ( প্রয়োজনীয় ) যে টেক্সট স্ট্রিংটিতে অনুসন্ধান করতে হবে, উদাহরণস্বরূপ: "রেস্তোরাঁ" বা "123 প্রধান রাস্তা"। এটি অবশ্যই একটি স্থানের নাম, ঠিকানা বা প্রতিষ্ঠানের বিভাগ হতে হবে। অন্য যেকোনো ধরনের ইনপুট ত্রুটি তৈরি করতে পারে এবং বৈধ ফলাফল ফেরত দেওয়ার নিশ্চয়তা নেই। স্থান পরিষেবা এই স্ট্রিং এর উপর ভিত্তি করে প্রার্থীর মিল ফিরিয়ে দেবে এবং তাদের অনুভূত প্রাসঙ্গিকতার উপর ভিত্তি করে ফলাফলগুলি অর্ডার করবে। এই প্যারামিটারটি ঐচ্ছিক হয়ে যায় যদি type প্যারামিটারটি অনুসন্ধান অনুরোধেও ব্যবহার করা হয়।
  • ঐচ্ছিকভাবে:
    • openNow — একটি বুলিয়ান মান, যা নির্দেশ করে যে Places পরিষেবা শুধুমাত্র সেই জায়গাগুলিকে ফেরত দেবে যেগুলি কোয়েরি পাঠানোর সময় ব্যবসার জন্য খোলা থাকে। Google Places ডাটাবেসে খোলার সময় নির্দিষ্ট করে না এমন জায়গাগুলি ফেরত দেওয়া হবে না যদি আপনি এই প্যারামিটারটি আপনার ক্যোয়ারীতে অন্তর্ভুক্ত করেন। openNow কে false সেট করলে কোন প্রভাব নেই।
    • minPriceLevel এবং maxPriceLevel — নির্দিষ্ট মূল্য স্তরের মধ্যে শুধুমাত্র সেই জায়গাগুলিতে ফলাফল সীমাবদ্ধ করে। বৈধ মানগুলি 0 (সবচেয়ে সাশ্রয়ী) থেকে 4 (সবচেয়ে ব্যয়বহুল), অন্তর্ভুক্ত।
    • হয়:
      • bounds — একটি google.maps.LatLngBounds অবজেক্ট যে আয়তক্ষেত্রে সার্চ করতে হবে তা নির্ধারণ করে; বা
      • একটি 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 : একটি সার্ভার ত্রুটির কারণে PlacesService অনুরোধটি প্রক্রিয়া করা যায়নি৷ আপনি আবার চেষ্টা করলে অনুরোধ সফল হতে পারে।
  • ZERO_RESULTS : এই অনুরোধের জন্য কোন ফলাফল পাওয়া যায়নি।

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

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

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

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

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

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

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

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

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

    • global_code হল একটি 4 অক্ষরের এলাকা কোড এবং 6 অক্ষর বা দীর্ঘ স্থানীয় কোড (849VCWC8+R9)।
    • compound_code হল একটি 6 অক্ষর বা দীর্ঘ স্থানীয় কোড যার একটি স্পষ্ট অবস্থান (CWC8+R9, Mountain View, 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 একটি বুলিয়ান মান যা নির্দেশ করে যে স্থানটি বর্তমান সময়ে খোলা আছে কিনা (স্থান লাইব্রেরিতে অবচয় , মানচিত্র জাভাস্ক্রিপ্ট API, পরিবর্তে utc_offset_minutes ব্যবহার করুন)।
  • place_id হল একটি টেক্সচুয়াল আইডেন্টিফায়ার যা একটি স্থানকে অনন্যভাবে চিহ্নিত করে। স্থান সম্পর্কে তথ্য পুনরুদ্ধার করতে, স্থানের বিবরণ অনুরোধে এই শনাক্তকারীকে পাস করুন। একটি স্থান আইডি সহ একটি স্থানকে কীভাবে উল্লেখ করতে হয় সে সম্পর্কে আরও জানুন।
  • rating স্থানের রেটিং রয়েছে, 0.0 থেকে 5.0 পর্যন্ত, সমষ্টিগত ব্যবহারকারীর পর্যালোচনার উপর ভিত্তি করে।
  • types এই স্থানের জন্য প্রকারের একটি বিন্যাস (যেমন, ["political", "locality"] বা ["restaurant", "lodging"] )। এই অ্যারেতে একাধিক মান থাকতে পারে বা খালি হতে পারে। পূর্ব বিজ্ঞপ্তি ছাড়াই নতুন মান চালু করা যেতে পারে। সমর্থিত প্রকারের তালিকা দেখুন।
  • vicinity : রাস্তার নাম, রাস্তার নম্বর এবং এলাকা সহ স্থানের জন্য একটি সরলীকৃত ঠিকানা, কিন্তু প্রদেশ/রাজ্য, পোস্টাল কোড বা দেশ নয়। উদাহরণস্বরূপ, গুগলের সিডনি, অস্ট্রেলিয়া অফিসের vicinity মান রয়েছে 5/48 Pirrama Road, Pyrmont

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

ডিফল্টরূপে, প্রতিটি স্থান অনুসন্ধান প্রতিটি ক্যোয়ারীতে 20টি পর্যন্ত ফলাফল প্রদান করে। যাইহোক, প্রতিটি অনুসন্ধান তিনটি পৃষ্ঠা জুড়ে বিভক্ত 60টি ফলাফল দিতে পারে। 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;
উদাহরণ দেখুন

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

স্থান বিবরণ

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

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

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

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

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

এটি একটি কলব্যাক পদ্ধতিও নেয়, যা 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 closed ( অপ্রচলিত ), photo , place_id , plus_code , type , জাভাসেসেসব্রেটেড , url , utc_offset , প্ল্যাসেট . cript API), 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 : একটি সার্ভার ত্রুটির কারণে PlacesService অনুরোধটি প্রক্রিয়া করা যায়নি৷ আপনি আবার চেষ্টা করলে অনুরোধ সফল হতে পারে।
  • 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" "(মার্কিন রাষ্ট্র)।

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

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

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

    • global_code হল একটি 4 অক্ষরের এলাকা কোড এবং 6 অক্ষর বা দীর্ঘ স্থানীয় কোড (849VCWC8+R9)।
    • compound_code হল একটি 6 অক্ষর বা দীর্ঘ স্থানীয় কোড যার একটি স্পষ্ট অবস্থান (CWC8+R9, Mountain View, CA, USA)৷ প্রোগ্রাম্যাটিকভাবে এই বিষয়বস্তু পার্স করবেন না।
    সাধারণত, গ্লোবাল কোড এবং যৌগিক কোড উভয়ই ফেরত দেওয়া হয়। যাইহোক, যদি ফলাফলটি দূরবর্তী অবস্থানে থাকে (উদাহরণস্বরূপ, একটি মহাসাগর বা মরুভূমি) শুধুমাত্র বিশ্বব্যাপী কোড ফেরত দেওয়া যেতে পারে।
  • html_attributions : এই স্থানের ফলাফলের জন্য অ্যাট্রিবিউশন টেক্সট দেখানো হবে।
  • icon : একটি ইমেজ রিসোর্সের URL যা এই জায়গার ধরনকে উপস্থাপন করতে ব্যবহার করা যেতে পারে।
  • international_phone_number আন্তর্জাতিক বিন্যাসে স্থানটির ফোন নম্বর রয়েছে। আন্তর্জাতিক বিন্যাসে দেশের কোড অন্তর্ভুক্ত থাকে এবং প্লাস (+) চিহ্নের সাথে উপসর্গ থাকে। উদাহরণস্বরূপ, Google-এর সিডনি, অস্ট্রেলিয়া অফিসের international_phone_number হল +61 2 9374 4000
  • name : জায়গার নাম।
  • utc_offset স্থান লাইব্রেরিতে অবচিত , মানচিত্র জাভাস্ক্রিপ্ট API, পরিবর্তে utc_offset_minutes ব্যবহার করুন।
  • utc_offset_minutes এই স্থানটির বর্তমান টাইমজোন UTC থেকে অফসেট করা মিনিটের সংখ্যা রয়েছে৷ উদাহরণ স্বরূপ, অস্ট্রেলিয়ার সিডনিতে দিনের আলো সংরক্ষণের সময় এটি হবে 660 (UTC থেকে +11 ঘন্টা), এবং ক্যালিফোর্নিয়ার স্থানগুলির জন্য দিবালোক সংরক্ষণ সময়ের বাইরে এটি হবে -480 (UTC থেকে -8 ঘন্টা)।
  • opening_hours নিম্নলিখিত তথ্য রয়েছে:
    • open_now ( প্লেসেস লাইব্রেরি, ম্যাপ জাভাস্ক্রিপ্ট এপিআই-এ অপ্রচলিত ; পরিবর্তে opening_hours.isOpen() ব্যবহার করুন। প্লেস বিশদ সহ isOpen কীভাবে ব্যবহার করবেন তা এই ভিডিওটি দেখুন।) একটি বুলিয়ান মান নির্দেশ করে যে স্থানটি বর্তমান সময়ে খোলা আছে কিনা।
    • periods[] is an array of opening periods covering seven days, starting from Sunday, in chronological order. Each period contains:
      • open contains a pair of day and time objects describing when the place opens:
        • day a number from 0–6, corresponding to the days of the week, starting on Sunday. For example, 2 means Tuesday.
        • time may contain a time of day in 24-hour hhmm format (values are in the range 0000–2359). The time will be reported in the place's timezone.
      • close may contain a pair of day and time objects describing when the place closes. Note: If a place is always open , the close section will be missing from the response. Applications can rely on always-open being represented as an open period containing day with value 0 and time with value 0000, and no close .
    • weekday_text is an array of seven strings representing the formatted opening hours for each day of the week. If a language parameter was specified in the Place Details request, the Places Service will format and localize the opening hours appropriately for that language. The ordering of the elements in this array depends on the language parameter. Some languages start the week on Monday while others start on Sunday.
  • permanently_closed ( deprecated ) is a boolean flag indicating whether the place has shut down either permanently or temporarily (value true ). Do not use permanently_closed . Instead, use business_status to get the operational status of businesses.
  • photos[] : an array of PlacePhoto objects. A PlacePhoto can be used to obtain a photo with the getUrl() method, or you can inspect the object for the following values:
    • height : the maximum height of the image, in pixels.
    • width : the maximum width of the image, in pixels.
    • html_attributions : Attribution text to be displayed with this place photo.
  • place_id : A textual identifier that uniquely identifies a place and can be used to retrieve information about the place via a Place Details request . Learn more about how to reference a place with a place ID .
  • rating : The place's rating, from 0.0 to 5.0, based on aggregated user reviews.
  • reviews an array of up to five reviews. Each review consists of several components:
    • aspects[] contains an array of PlaceAspectRating objects, each of which provides a rating of a single attribute of the establishment. The first object in the array is considered the primary aspect. Each PlaceAspectRating is defined as:
      • type the name of the aspect that is being rated. The following types are supported: appeal , atmosphere , decor , facilities , food , overall , quality and service .
      • rating the user's rating for this particular aspect, from 0 to 3.
    • author_name the name of the user who submitted the review. Anonymous reviews are attributed to "A Google user". If a language parameter was set, then the phrase "A Google user" will return a localized string.
    • author_url the URL to the users Google+ profile, if available.
    • language an IETF language code indicating the language used in the user's review. This field contains the main language tag only, and not the secondary tag indicating country or region. For example, all the English reviews are tagged as 'en', and not 'en-AU' or 'en-UK' and so on.
    • rating the user's overall rating for this place. This is a whole number, ranging from 1 to 5.
    • text the user's review. When reviewing a location with Google Places, text reviews are considered optional; therefore, this field may by empty.
  • types An array of types for this place (eg, ["political", "locality"] or ["restaurant", "lodging"] ). This array may contain multiple values, or may be empty. New values may be introduced without prior notice. See the list of supported types .
  • url : URL of the official Google page for this place. This is the Google-owned page that contains the best available information about the place. Applications must link to or embed this page on any screen that shows detailed results about the place to the user.
  • 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.

Referencing 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

The Place Photo feature allows you 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. The PhotoOptions object allows you to specify the maximum desired 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.