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

ওভারভিউ

স্থান লাইব্রেরি, মানচিত্র জাভাস্ক্রিপ্ট এপিআই-এর ফাংশনগুলি আপনার অ্যাপ্লিকেশনকে একটি সংজ্ঞায়িত এলাকার মধ্যে স্থান (প্রতিষ্ঠান, ভৌগলিক অবস্থান, বা আগ্রহের বিশিষ্ট স্থান হিসাবে এই 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&loading=async&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 অবজেক্ট হতে হবে যা আয়তক্ষেত্রাকার অনুসন্ধান এলাকা নির্ধারণ করে। সীমানা এলাকার জন্য সর্বাধিক সমর্থিত তির্যক দূরত্ব প্রায় 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]);
    }
  }
}

উদাহরণ দেখুন

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

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 অবজেক্ট হতে হবে যা আয়তক্ষেত্রাকার অনুসন্ধান এলাকা নির্ধারণ করে। সীমানা এলাকার জন্য সর্বাধিক সমর্থিত তির্যক দূরত্ব প্রায় 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 : একটি সার্ভার ত্রুটির কারণে 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 utc_offset icon_mask_base_uri , icon_background_color , name , permanently_closed ( অপ্রচলিত ), photo , place_id , plus_code , type , url লাইব্রেরি, মানচিত্র জাভাস্ক্রিপ্ট 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[] হল একটি খোলার সময়কালের একটি অ্যারে যা সাত দিন জুড়ে, রবিবার থেকে শুরু হয়, কালানুক্রমিক ক্রমে। প্রতিটি সময়ের মধ্যে রয়েছে:
      • open মধ্যে দিন এবং সময়ের বস্তুর একটি জোড়া থাকে যেখানে স্থানটি কখন খোলা হয় তা বর্ণনা করে:
        • day একটি সংখ্যা 0-6 থেকে, সপ্তাহের দিনগুলির সাথে সম্পর্কিত, রবিবার থেকে শুরু হয়৷ উদাহরণস্বরূপ, 2 মানে মঙ্গলবার।
        • time 24-ঘন্টা hhmm ফর্ম্যাটে দিনের একটি সময় থাকতে পারে (মানগুলি 0000-2359 সীমার মধ্যে)। time স্থানের টাইমজোনে রিপোর্ট করা হবে.
      • close দিন এবং সময়ের বস্তুর একটি জোড়া থাকতে পারে যেখানে স্থানটি বন্ধ হয়ে যায়। দ্রষ্টব্য: যদি একটি স্থান সর্বদা খোলা থাকে, তাহলে প্রতিক্রিয়া থেকে close অংশটি অনুপস্থিত থাকবে। অ্যাপ্লিকেশানগুলি সর্বদা খোলার উপর নির্ভর করতে পারে একটি open সময় হিসাবে উপস্থাপিত হচ্ছে 0 মান সহ day এবং time 0000 মান সহ, এবং কোন close নেই।
    • weekday_text হল সাতটি স্ট্রিংয়ের একটি অ্যারে যা সপ্তাহের প্রতিটি দিনের জন্য ফরম্যাট খোলার সময় উপস্থাপন করে। স্থানের বিশদ বিবরণের অনুরোধে যদি একটি language প্যারামিটার নির্দিষ্ট করা হয়, তাহলে স্থান পরিষেবা সেই ভাষার জন্য খোলার সময় যথাযথভাবে বিন্যাস করবে এবং স্থানীয়করণ করবে। এই অ্যারের উপাদানগুলির ক্রম language প্যারামিটারের উপর নির্ভর করে। কিছু ভাষা সোমবার সপ্তাহ শুরু করে আবার অন্যরা রবিবার শুরু করে।
  • permanently_closed ( অবমূল্যায়িত ) একটি বুলিয়ান পতাকা যা নির্দেশ করে যে জায়গাটি স্থায়ীভাবে বা অস্থায়ীভাবে বন্ধ হয়ে গেছে কিনা (মূল্য true )। permanently_closed ব্যবহার করবেন না। পরিবর্তে, ব্যবসায়ের অপারেশনাল স্ট্যাটাস পেতে business_status ব্যবহার করুন।
  • photos[] : PlacePhoto অবজেক্টগুলির একটি অ্যারে। getUrl() পদ্ধতিতে একটি ফটো পেতে একটি PlacePhoto ব্যবহার করা যেতে পারে, বা আপনি নিম্নলিখিত মানগুলির জন্য অবজেক্টটি পরিদর্শন করতে পারেন:
    • height : পিক্সেলগুলিতে চিত্রের সর্বাধিক উচ্চতা।
    • width : পিক্সেলগুলিতে চিত্রের সর্বাধিক প্রস্থ।
    • html_attributions : এই জায়গার ফটো সহ প্রদর্শিত হবে অ্যাট্রিবিউশন পাঠ্য।
  • place_id : একটি পাঠ্য শনাক্তকারী যা কোনও স্থানকে অনন্যভাবে চিহ্নিত করে এবং স্থানের বিশদ অনুরোধের মাধ্যমে স্থান সম্পর্কে তথ্য পুনরুদ্ধার করতে ব্যবহার করা যেতে পারে। কোনও স্থান আইডি সহ কোনও জায়গা কীভাবে রেফারেন্স করবেন সে সম্পর্কে আরও জানুন।
  • rating : সমষ্টিগত ব্যবহারকারী পর্যালোচনার ভিত্তিতে 0.0 থেকে 5.0 পর্যন্ত স্থানটির রেটিং।
  • পাঁচটি পর্যন্ত পর্যালোচনার একটি অ্যারে reviews । প্রতিটি পর্যালোচনা বিভিন্ন উপাদান নিয়ে গঠিত:
    • aspects[] PlaceAspectRating অবজেক্টগুলির একটি অ্যারে রয়েছে, যার প্রতিটি প্রতিষ্ঠানের একক বৈশিষ্ট্যের একটি রেটিং সরবরাহ করে। অ্যারেতে প্রথম অবজেক্টটিকে প্রাথমিক দিক হিসাবে বিবেচনা করা হয়। প্রতিটি PlaceAspectRating হিসাবে সংজ্ঞায়িত করা হয়:
      • যে দিকটি রেট করা হচ্ছে তার নাম type । নিম্নলিখিত প্রকারগুলি সমর্থিত: appeal , atmosphere , decor , facilities , food , overall , quality এবং service
      • 0 থেকে 3 পর্যন্ত এই বিশেষ দিকটির জন্য ব্যবহারকারীর রেটিং rating
    • author_name যে ব্যবহারকারীর নাম পর্যালোচনা জমা দিয়েছেন। বেনামে পর্যালোচনাগুলি "একটি গুগল ব্যবহারকারী" কে দায়ী করা হয়। যদি কোনও ভাষার প্যারামিটার সেট করা থাকে, তবে "একটি গুগল ব্যবহারকারী" শব্দটি স্থানীয়করণের স্ট্রিংটি ফিরিয়ে দেবে।
    • author_url ইউআরএল ব্যবহারকারীদের Google+ প্রোফাইলে, যদি পাওয়া যায় তবে।
    • language একটি আইইটিএফ ভাষা কোড ব্যবহারকারীর পর্যালোচনাতে ব্যবহৃত ভাষাটি নির্দেশ করে। এই ক্ষেত্রটিতে কেবল প্রধান ভাষা ট্যাগ রয়েছে, এবং দেশ বা অঞ্চলকে নির্দেশকারী গৌণ ট্যাগ নয়। উদাহরণস্বরূপ, সমস্ত ইংরেজী পর্যালোচনাগুলি 'এন' হিসাবে ট্যাগ করা হয়েছে, এবং 'এন-আউ' বা 'এন-ইউকে' এবং অন্যরকম নয়।
    • এই জায়গার জন্য ব্যবহারকারীর সামগ্রিক রেটিং rating । এটি 1 থেকে 5 অবধি পুরো সংখ্যা।
    • ব্যবহারকারীর পর্যালোচনা text । গুগল স্থানগুলির সাথে কোনও অবস্থান পর্যালোচনা করার সময়, পাঠ্য পর্যালোচনাগুলি al চ্ছিক হিসাবে বিবেচিত হয়; অতএব, এই ক্ষেত্রটি খালি দ্বারা হতে পারে।
  • এই জায়গার জন্য প্রকারের একটি অ্যারে types (যেমন, ["political", "locality"] বা ["restaurant", "lodging"] ))। এই অ্যারে একাধিক মান থাকতে পারে বা খালি থাকতে পারে। পূর্বের বিজ্ঞপ্তি ছাড়াই নতুন মানগুলি চালু করা যেতে পারে। সমর্থিত ধরণের তালিকা দেখুন।
  • url : এই জায়গার জন্য অফিসিয়াল গুগল পৃষ্ঠার ইউআরএল। এটি গুগল-মালিকানাধীন পৃষ্ঠা যা জায়গা সম্পর্কে সর্বোত্তম উপলব্ধ তথ্য ধারণ করে। অ্যাপ্লিকেশনগুলিকে অবশ্যই এই পৃষ্ঠায় লিঙ্ক বা এম্বেড করতে হবে এমন কোনও স্ক্রিনে এম্বেড করতে হবে যা ব্যবহারকারীর কাছে জায়গা সম্পর্কে বিশদ ফলাফল দেখায়।
  • vicinity : রাস্তার নাম, রাস্তার নম্বর এবং লোকেশন সহ জায়গাটির জন্য একটি সরল ঠিকানা, তবে প্রদেশ/রাজ্য, ডাক কোড বা দেশ নয়। উদাহরণস্বরূপ, গুগলের সিডনি, অস্ট্রেলিয়া অফিসে 5/48 Pirrama Road, Pyrmont একটি vicinity মান রয়েছে। vicinity সম্পত্তিটি কেবল কাছের অনুসন্ধানের জন্য ফিরে আসে।
  • website এই জায়গার জন্য অনুমোদিত ওয়েবসাইট যেমন ব্যবসায়ের হোমপেজের তালিকা করে।

দ্রষ্টব্য: বহুমাত্রিক রেটিং সমস্ত অবস্থানের জন্য উপলব্ধ নাও হতে পারে। যদি খুব কম পর্যালোচনা থাকে তবে বিশদ প্রতিক্রিয়াতে হয় 0.0 থেকে 5.0 স্কেল (যদি উপলভ্য হয়) বা কোনও রেটিং মোটেই কোনও উত্তরাধিকারী রেটিং অন্তর্ভুক্ত থাকবে।

একটি স্থান আইডি সঙ্গে একটি জায়গা উল্লেখ করা

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

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

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

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);

স্থান ফটো

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

PlacePhoto অবজেক্টগুলির একটি অ্যারে কোনও getDetails() , textSearch() বা nearbySearch() জন্য PlacesService বিরুদ্ধে করা অনুরোধের জন্য PlaceResult অবজেক্টের অংশ হিসাবে ফিরে আসবে।

দ্রষ্টব্য: ফেরত দেওয়া ছবির সংখ্যা অনুরোধ অনুসারে পরিবর্তিত হয়।

  • কাছাকাছি অনুসন্ধান বা একটি পাঠ্য অনুসন্ধান বেশিরভাগ PlacePhoto অবজেক্টে ফিরে আসবে।
  • একটি বিশদ অনুরোধ দশটি PlacePhoto অবজেক্ট পর্যন্ত ফিরে আসবে।

আপনি PlacePhoto.getUrl() পদ্ধতিতে কল করে এবং একটি বৈধ PhotoOptions অবজেক্টটি পাস করে সম্পর্কিত চিত্রের জন্য ইউআরএলটির জন্য অনুরোধ করতে পারেন। PhotoOptions অবজেক্ট আপনাকে চিত্রের সর্বাধিক পছন্দসই উচ্চতা এবং প্রস্থ নির্দিষ্ট করতে দেয়। আপনি যদি maxHeight এবং maxWidth উভয়ের জন্য কোনও মান নির্দিষ্ট করেন তবে মূল দিকটি অনুপাতটি বজায় রেখে ফটো পরিষেবাটি দুটি আকারের ছোটটিতে চিত্রটি পুনরায় আকার দেবে।

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

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})
  });
}

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

,

ওভারভিউ

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

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

শুরু হচ্ছে

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

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

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

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

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

গ্রন্থাগার লোড হচ্ছে

স্থান পরিষেবাটি একটি স্ব-অন্তর্ভুক্ত গ্রন্থাগার, মূল মানচিত্র জাভাস্ক্রিপ্ট এপিআই কোড থেকে পৃথক। এই লাইব্রেরির মধ্যে থাকা কার্যকারিতাটি ব্যবহার করতে, আপনাকে অবশ্যই প্রথমে এটি ম্যাপস এপিআই বুটস্ট্র্যাপ ইউআরএল libraries প্যারামিটার ব্যবহার করে এটি লোড করতে হবে:

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

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

এপিআই কী এর এপিআই বিধিনিষেধ তালিকায় স্থানগুলি এপিআই যুক্ত করুন

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

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

কোটা

স্থানগুলি লাইব্রেরি স্থান এপিআইয়ের সাথে বর্ণিত হিসাবে এপিআইয়ের সাথে একটি ব্যবহারের কোটা ভাগ করে।

নীতিমালা

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

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

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

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

স্থানের অনুরোধগুলি সন্ধান করুন

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

ক্যোয়ারী থেকে স্থান সন্ধান করুন

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

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

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

নিম্নলিখিত উদাহরণটি findPlaceFromQuery() জন্য একটি কল দেখায়, "সমসাময়িক আর্ট অস্ট্রেলিয়ার যাদুঘর" অনুসন্ধান করে এবং 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() পদ্ধতিটি কল করুন, যা নিম্নলিখিত পরামিতিগুলি গ্রহণ করে:

  • E.164 ফর্ম্যাটে phoneNumber (প্রয়োজনীয়) একটি ফোন নম্বর।
  • fields (প্রয়োজনীয়) এক বা একাধিক ক্ষেত্র ফেরত দেওয়ার জন্য স্থানের ডেটার ধরণগুলি নির্দিষ্ট করে।
  • locationBias (al চ্ছিক) অনুসন্ধানের জন্য অঞ্চলটি সংজ্ঞায়িত করা সমন্বয় করে। এটি নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:

ফলাফলের অবজেক্ট এবং 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 ( অবমূল্যায়িত ), 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}

আপনি একটি ল্যাটলংবাউন্ডসও ব্যবহার করতে পারেন।

একটি নির্দিষ্ট অঞ্চলকে কেন্দ্র করে অনুসন্ধানের জন্য একটি ব্যাসার্ধ (মিটারে) সংজ্ঞায়িত করুন:

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

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

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

  • একটি LatLngBounds
  • location সম্পত্তিটির সংমিশ্রণ হিসাবে সংজ্ঞায়িত একটি বিজ্ঞপ্তি অঞ্চল - বৃত্তের কেন্দ্রটিকে একটি LatLng অবজেক্ট হিসাবে নির্দিষ্ট করে - এবং একটি ব্যাসার্ধ, মিটারে পরিমাপ করা হয়।

নিকটবর্তী একটি স্থানগুলি PlacesService সার্ভিসের nearbySearch() পদ্ধতিতে কল দিয়ে শুরু করা হয়, যা PlaceResult অবজেক্টগুলির একটি অ্যারে ফিরিয়ে দেবে। নোট করুন যে nearbySearch() পদ্ধতিটি সংস্করণ 3.9 হিসাবে search() পদ্ধতিটি প্রতিস্থাপন করে।

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

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

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

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

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

অনুসন্ধান ফলাফল রাখুন

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

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

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

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

    ফর্ম্যাটযুক্ত ঠিকানাটি যৌক্তিকভাবে এক বা একাধিক ঠিকানা উপাদানগুলির সমন্বয়ে গঠিত। উদাহরণস্বরূপ, "111 8 তম অ্যাভিনিউ, নিউ ইয়র্ক, এনওয়াই" ঠিকানাটি নিম্নলিখিত উপাদানগুলি নিয়ে গঠিত: "111" (রাস্তার নম্বর), "8 তম অ্যাভিনিউ" (দ্য রুট), "নিউ ইয়র্ক" (দ্য সিটি) এবং "এনওয়াই "(মার্কিন রাজ্য)।

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

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

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

    • global_code একটি 4 টি অক্ষর অঞ্চল কোড এবং 6 টি অক্ষর বা দীর্ঘ স্থানীয় কোড (849vcwc8+r9)।
    • compound_code একটি স্পষ্ট অবস্থান (সিডব্লিউসি 8+আর 9, মাউন্টেন ভিউ, সিএ, মার্কিন যুক্তরাষ্ট্র) সহ একটি 6 টি চরিত্র বা দীর্ঘতর স্থানীয় কোড। প্রোগ্রামিকভাবে এই বিষয়বস্তু পার্স করবেন না।
    সাধারণত, গ্লোবাল কোড এবং যৌগিক কোড উভয়ই ফিরে আসে। তবে, যদি ফলাফলটি কোনও দূরবর্তী স্থানে থাকে (উদাহরণস্বরূপ, একটি মহাসাগর বা মরুভূমি) কেবল বৈশ্বিক কোডটি ফিরে আসতে পারে।
  • html_attributions : অনুসন্ধানের ফলাফলগুলি প্রদর্শন করার সময় আপনার বৈশিষ্ট্যগুলির একটি অ্যারে যা আপনার প্রদর্শন করা উচিত। অ্যারেতে প্রতিটি এন্ট্রিটিতে একটি একক অ্যাট্রিবিউশনের জন্য এইচটিএমএল পাঠ্য থাকে। দ্রষ্টব্য: এটি পুরো অনুসন্ধান প্রতিক্রিয়ার জন্য সমস্ত বৈশিষ্ট্যের সমষ্টি। প্রতিক্রিয়াতে সমস্ত PlaceResult অবজেক্টগুলিতে একই রকম অ্যাট্রিবিউশন তালিকা রয়েছে।
  • icon একটি রঙিন 71px x 71px পিএনজি আইকনের জন্য ইউআরএল ফেরত দেয়।
  • icon_mask_base_uri একটি নন-রঙিন আইকনটির জন্য বেস ইউআরএলটি ফেরত দেয়, বিয়োগ করে .svg বা .png এক্সটেনশান।
  • icon_background_color স্থানের বিভাগের জন্য ডিফল্ট হেক্স রঙ কোডটি ফেরত দেয়।
  • name : জায়গার নাম।
  • opening_hours নিম্নলিখিত তথ্য থাকতে পারে:
    • open_now হ'ল একটি বুলিয়ান মান যা ইঙ্গিত করে যে জায়গাটি বর্তমান সময়ে খোলা থাকে কিনা (স্থানগুলি লাইব্রেরিতে অবমূল্যায়িত , জাভাস্ক্রিপ্ট এপিআই মানচিত্র, পরিবর্তে utc_offset_minutes ব্যবহার করুন)।
  • place_id একটি পাঠ্য শনাক্তকারী যা অনন্যভাবে কোনও স্থান সনাক্ত করে। জায়গা সম্পর্কে তথ্য পুনরুদ্ধার করতে, এই সনাক্তকারীকে স্থান বিশদ অনুরোধে পাস করুন। কোনও স্থান আইডি সহ কোনও জায়গা কীভাবে রেফারেন্স করবেন সে সম্পর্কে আরও জানুন।
  • একত্রিত ব্যবহারকারী পর্যালোচনার উপর ভিত্তি করে rating 0.0 থেকে 5.0 পর্যন্ত জায়গাটির রেটিং রয়েছে।
  • এই জায়গার জন্য প্রকারের একটি অ্যারে types (যেমন, ["political", "locality"] বা ["restaurant", "lodging"] ))। এই অ্যারে একাধিক মান থাকতে পারে বা খালি থাকতে পারে। পূর্বের বিজ্ঞপ্তি ছাড়াই নতুন মানগুলি চালু করা যেতে পারে। সমর্থিত ধরণের তালিকা দেখুন।
  • vicinity : রাস্তার নাম, রাস্তার নম্বর এবং লোকেশন সহ জায়গাটির জন্য একটি সরল ঠিকানা, তবে প্রদেশ/রাজ্য, ডাক কোড বা দেশ নয়। উদাহরণস্বরূপ, গুগলের সিডনি, অস্ট্রেলিয়া অফিসে 5/48 Pirrama Road, Pyrmont একটি vicinity মান রয়েছে।

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

ডিফল্টরূপে, প্রতিটি স্থান অনুসন্ধান প্রতি কোয়েরিতে 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 ( অবমূল্যায়িত ), photo , plus_code place_id 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 : ওয়েবপৃষ্ঠাটি প্লেসার সার্ভিস ব্যবহার করার অনুমতি নেই।
  • UNKNOWN_ERROR : সার্ভার ত্রুটির কারণে প্লেসেসার্ভিস অনুরোধটি প্রক্রিয়া করা যায়নি। আপনি আবার চেষ্টা করলে অনুরোধটি সফল হতে পারে।
  • ZERO_RESULTS : এই অনুরোধটির জন্য কোনও ফলাফল পাওয়া যায় নি।

বিশদ ফলাফল রাখুন

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

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

    Each address component typically contains the following fields:

    • types[] is an array indicating the type of the address component. See the list of supported types .
    • long_name is the full text description or name of the address component as returned by the Geocoder.
    • short_name is an abbreviated textual name for the address component, if available. For example, an address component for the state of Alaska may have a long_name of "Alaska" and a short_name of "AK" using the 2-letter postal abbreviation.

    Note the following facts about the address_components[] array:

    • The array of address components may contain more components than the formatted_address .
    • The array does not necessarily include all the political entities that contain an address, apart from those included in the formatted_address . To retrieve all the political entities that contain a specific address, you should use reverse geocoding, passing the latitude/longitude of the address as a parameter to the request.
    • The format of the response is not guaranteed to remain the same between requests. In particular, the number of address_components varies based on the address requested and can change over time for the same address. A component can change position in the array. The type of the component can change. A particular component may be missing in a later response.
  • business_status indicates the operational status of the place, if it is a business. It can contain one of the following values:
    • OPERATIONAL
    • CLOSED_TEMPORARILY
    • CLOSED_PERMANENTLY
    If no data exists, business_status is not returned.
  • formatted_address : The human-readable address of this place.

    Often this address is equivalent to the postal address. Note that some countries, such as the United Kingdom, do not allow distribution of true postal addresses due to licensing restrictions.

    The formatted address is logically composed of one or more address components . For example, the address "111 8th Avenue, New York, NY" consists of the following components: "111" (the street number), "8th Avenue" (the route), "New York" (the city) and "NY" (the US state).

    Do not parse the formatted address programmatically. Instead you should use the individual address components, which the API response includes in addition to the formatted address field.

  • formatted_phone_number : The place's phone number, formatted according to the number's regional convention .
  • geometry : The place's geometry-related information. এর মধ্যে রয়েছে:
    • location provides the latitude and longitude of the place.
    • viewport defines the preferred viewport on the map when viewing this place.
  • 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.
  • plus_code (see Open Location Code and plus codes ) is an encoded location reference, derived from latitude and longitude coordinates, that represents an area: 1/8000th of a degree by 1/8000th of a degree (about 14m x 14m at the equator) বা ছোট। Plus codes can be used as a replacement for street addresses in places where they do not exist (where buildings are not numbered or streets are not named).

    The plus code is formatted as a global code and a compound code:

    • global_code is a 4 character area code and 6 character or longer local code (849VCWC8+R9).
    • compound_code is a 6 character or longer local code with an explicit location (CWC8+R9, Mountain View, CA, USA). Do not programmatically parse this content.
    Typically, both the global code and compound code are returned. However, if the result is in a remote location (for example, an ocean or desert) only the global code may be returned.
  • html_attributions : Attribution text to be displayed for this place result.
  • icon : URL to an image resource that can be used to represent this place's type.
  • international_phone_number contains the place's phone number in international format. International format includes the country code, and is prefixed with the plus (+) sign. For example, the international_phone_number for Google's Sydney, Australia office is +61 2 9374 4000 .
  • name : The place's name.
  • utc_offset Deprecated in the Places Library, Maps JavaScript API, use utc_offset_minutes instead.
  • utc_offset_minutes contains the number of minutes this place's current timezone is offset from UTC. For example, for places in Sydney, Australia during daylight saving time this would be 660 (+11 hours from UTC), and for places in California outside of daylight saving time this would be -480 (-8 hours from UTC).
  • opening_hours contains the following information:
    • open_now ( Deprecated in the Places Library, Maps JavaScript API; use opening_hours.isOpen() instead. See this video for how to use isOpen with Place Details.) is a boolean value indicating whether the place is open at the current time.
    • 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);

স্থান ফটো

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 .

দ্রষ্টব্য: ফেরত দেওয়া ছবির সংখ্যা অনুরোধ অনুসারে পরিবর্তিত হয়।

  • 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.