সংক্ষিপ্ত বিবরণ
প্লেস লাইব্রেরি, ম্যাপস জাভাস্ক্রিপ্ট এপিআই-এর ফাংশনগুলি আপনার অ্যাপ্লিকেশনকে একটি নির্দিষ্ট এলাকার মধ্যে অবস্থিত স্থানগুলি (এই এপিআইতে স্থাপনা, ভৌগোলিক অবস্থান, বা আকর্ষণীয় স্থান হিসাবে সংজ্ঞায়িত) অনুসন্ধান করতে সক্ষম করে, যেমন একটি মানচিত্রের সীমানা, অথবা একটি নির্দিষ্ট বিন্দুর চারপাশে।
Places API একটি স্বয়ংক্রিয়ভাবে সম্পূর্ণ বৈশিষ্ট্য প্রদান করে যা আপনি আপনার অ্যাপ্লিকেশনগুলিকে Google Maps অনুসন্ধান ক্ষেত্রের মতো টাইপ-এগিয়ে-সার্চ আচরণ প্রদান করতে ব্যবহার করতে পারেন। যখন একজন ব্যবহারকারী একটি ঠিকানা টাইপ করা শুরু করেন, তখন স্বয়ংক্রিয়ভাবে সম্পূর্ণ বাকি অংশ পূরণ করবে। আরও তথ্যের জন্য, স্বয়ংক্রিয়ভাবে সম্পূর্ণ ডকুমেন্টেশন দেখুন।
শুরু করা
আপনি যদি Maps JavaScript API বা JavaScript এর সাথে অপরিচিত হন, তাহলে আমরা আপনাকে JavaScript পর্যালোচনা করার এবং শুরু করার আগে একটি API কী নেওয়ার পরামর্শ দিচ্ছি।
লাইব্রেরি লোড করুন
প্লেসেস পরিষেবাটি একটি স্বয়ংসম্পূর্ণ লাইব্রেরি, যা মূল Maps JavaScript API কোড থেকে আলাদা। এই লাইব্রেরির মধ্যে থাকা কার্যকারিতা ব্যবহার করতে, আপনাকে প্রথমে Maps API বুটস্ট্র্যাপ URL-এ libraries প্যারামিটার ব্যবহার করে এটি লোড করতে হবে:
<script async
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&loading=async&libraries=places&callback=initMap">
</script>আরও তথ্যের জন্য লাইব্রেরিগুলির সংক্ষিপ্ত বিবরণ দেখুন।
API কী-এর API সীমাবদ্ধতা তালিকায় Places API যোগ করুন
আপনার কীগুলিতে API বিধিনিষেধ প্রয়োগ করলে API কী-এর ব্যবহার এক বা একাধিক API বা SDK-তে সীমাবদ্ধ থাকে। API কী-এর সাথে সম্পর্কিত কোনও API বা SDK-এর অনুরোধ প্রক্রিয়া করা হবে। API কী-এর সাথে সম্পর্কিত নয় এমন কোনও API বা SDK-এর অনুরোধ ব্যর্থ হবে। Places Library-এর সাথে ব্যবহারের জন্য API কী-কে সীমাবদ্ধ করতে, Maps JavaScript API:- গুগল ক্লাউড কনসোলে যান।
- প্রজেক্টের ড্রপ-ডাউনে ক্লিক করুন এবং আপনি যে API কীটি সুরক্ষিত করতে চান সেটি ধারণকারী প্রজেক্টটি নির্বাচন করুন।
- মেনু বোতামে ক্লিক করুন
এবং Google Maps Platform > Credentials নির্বাচন করুন। - শংসাপত্র পৃষ্ঠায়, আপনি যে API কীটি সুরক্ষিত করতে চান তার নামে ক্লিক করুন।
- API কী সীমাবদ্ধ করুন এবং পুনঃনামকরণ করুন পৃষ্ঠায়, সীমাবদ্ধতাগুলি সেট করুন:
- API বিধিনিষেধ
- সীমাবদ্ধ কী নির্বাচন করুন।
- Select APIs এ ক্লিক করুন এবং Maps JavaScript API এবং Places API উভয়ই নির্বাচন করুন।
(যদি API গুলির কোনও একটি তালিকাভুক্ত না থাকে, তাহলে আপনাকে এটি সক্রিয় করতে হবে।)
- সংরক্ষণ করুন ক্লিক করুন।
ব্যবহারের সীমা এবং নীতিমালা
কোটা
Places লাইব্রেরি Places API-এর সাথে একটি ব্যবহারের কোটা ভাগ করে নেয় যেমন Places API-এর জন্য Usage Limits ডকুমেন্টেশনে বর্ণিত হয়েছে।
নীতিমালা
Places লাইব্রেরি, Maps JavaScript API এর ব্যবহার Places API এর জন্য বর্ণিত নীতি অনুসারে হতে হবে।
স্থান অনুসন্ধান
স্থান পরিষেবার মাধ্যমে আপনি নিম্নলিখিত ধরণের অনুসন্ধান করতে পারেন:
- কোয়েরি থেকে স্থান খুঁজুন একটি টেক্সট কোয়েরির (উদাহরণস্বরূপ, একটি স্থানের নাম বা ঠিকানা) উপর ভিত্তি করে একটি স্থান ফেরত দেয়।
- ফোন নম্বর থেকে স্থান খুঁজুন একটি ফোন নম্বরের উপর ভিত্তি করে একটি স্থান ফেরত দেয়।
- কাছাকাছি অনুসন্ধান ব্যবহারকারীর অবস্থানের উপর ভিত্তি করে কাছাকাছি স্থানগুলির একটি তালিকা প্রদান করে।
- টেক্সট সার্চ একটি সার্চ স্ট্রিং এর উপর ভিত্তি করে কাছাকাছি স্থানের একটি তালিকা প্রদান করে, যেমন "পিৎজা"।
- স্থানের বিবরণের অনুরোধগুলি ব্যবহারকারীর পর্যালোচনা সহ একটি নির্দিষ্ট স্থান সম্পর্কে আরও বিস্তারিত তথ্য প্রদান করে।
ফেরত দেওয়া তথ্যে প্রতিষ্ঠান - যেমন রেস্তোরাঁ, দোকান এবং অফিস - এবং 'জিওকোড' ফলাফল অন্তর্ভুক্ত থাকতে পারে, যা ঠিকানা, রাজনৈতিক এলাকা যেমন শহর ও শহর এবং অন্যান্য আগ্রহের স্থান নির্দেশ করে।
স্থানের অনুরোধ খুঁজুন
একটি স্থান অনুসন্ধানের অনুরোধ আপনাকে টেক্সট কোয়েরি বা ফোন নম্বরের মাধ্যমে একটি স্থান অনুসন্ধান করতে দেয়। স্থান অনুসন্ধানের অনুরোধ দুই ধরণের:
কোয়েরি থেকে স্থান খুঁজুন
Query থেকে Find Place একটি টেক্সট ইনপুট নেয় এবং একটি স্থান ফেরত দেয়। ইনপুটটি যেকোনো ধরণের স্থানের ডেটা হতে পারে, উদাহরণস্বরূপ একটি ব্যবসার নাম বা ঠিকানা। Query থেকে Find Place অনুরোধ করতে, PlacesService এর findPlaceFromQuery() পদ্ধতিতে কল করুন, যা নিম্নলিখিত পরামিতিগুলি গ্রহণ করে:
-
query(প্রয়োজনীয়) যে টেক্সট স্ট্রিংটিতে অনুসন্ধান করতে হবে, উদাহরণস্বরূপ: "রেস্তোরাঁ" অথবা "১২৩ মেইন স্ট্রিট"। এটি অবশ্যই একটি স্থানের নাম, ঠিকানা, অথবা প্রতিষ্ঠানের বিভাগ হতে হবে। অন্য যেকোনো ধরণের ইনপুট ত্রুটি তৈরি করতে পারে এবং বৈধ ফলাফল ফেরত দেওয়ার নিশ্চয়তা দেয় না। Places API এই স্ট্রিংয়ের উপর ভিত্তি করে প্রার্থীর মিলগুলি ফেরত দেবে এবং তাদের অনুভূত প্রাসঙ্গিকতার উপর ভিত্তি করে ফলাফলগুলি অর্ডার করবে। -
fields(প্রয়োজনীয়) এক বা একাধিক ক্ষেত্র যা কোন ধরণের স্থানের ডেটা ফেরত দেবে তা নির্দিষ্ট করে। -
locationBias(ঐচ্ছিক) অনুসন্ধানের জন্য এলাকা নির্ধারণকারী স্থানাঙ্ক। এটি নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:- LatLngLiteral বা LatLng অবজেক্ট হিসেবে নির্দিষ্ট করা lat/lng স্থানাঙ্কের একটি সেট
- আয়তক্ষেত্রাকার সীমানা (দুটি lat/lng জোড়া, অথবা একটি LatLngBounds বস্তু )
- একটি অক্ষাংশ/lng কেন্দ্রীভূত ব্যাসার্ধ (মিটারে)
ফলাফল অবজেক্ট এবং google.maps.places.PlacesServiceStatus প্রতিক্রিয়া পরিচালনা করার জন্য আপনাকে findPlaceFromQuery() এর জন্য একটি কলব্যাক পদ্ধতিও পাস করতে হবে।
নিচের উদাহরণে findPlaceFromQuery() এর জন্য একটি কল দেখানো হয়েছে, যেখানে "Museum of Contemporary Art Australia" অনুসন্ধান করা হয়েছে, এবং name এবং geometry ক্ষেত্রগুলি অন্তর্ভুক্ত করা হয়েছে।
var map; var service; var infowindow; function initMap() { var sydney = new google.maps.LatLng(-33.867, 151.195); infowindow = new google.maps.InfoWindow(); map = new google.maps.Map( document.getElementById('map'), {center: sydney, zoom: 15}); var request = { query: 'Museum of Contemporary Art Australia', fields: ['name', 'geometry'], }; var service = new google.maps.places.PlacesService(map); service.findPlaceFromQuery(request, function(results, status) { if (status === google.maps.places.PlacesServiceStatus.OK) { for (var i = 0; i < results.length; i++) { createMarker(results[i]); } map.setCenter(results[0].geometry.location); } }); }
ফোন নম্বর থেকে স্থান খুঁজুন
ফোন নম্বর থেকে স্থান খুঁজুন একটি ফোন নম্বর নেয় এবং একটি স্থান ফেরত দেয়। ফোন নম্বর থেকে স্থান খুঁজুন অনুরোধ করতে, PlacesService এর findPlaceFromPhoneNumber() পদ্ধতিতে কল করুন, যা নিম্নলিখিত পরামিতিগুলি নেয়:
-
phoneNumber(প্রয়োজনীয়) E.164 ফর্ম্যাটে একটি ফোন নম্বর। -
fields(প্রয়োজনীয়) এক বা একাধিক ক্ষেত্র যা কোন ধরণের স্থানের ডেটা ফেরত দেবে তা নির্দিষ্ট করে। -
locationBias(ঐচ্ছিক) অনুসন্ধানের জন্য এলাকা নির্ধারণকারী স্থানাঙ্ক। এটি নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:- LatLngLiteral বা LatLng অবজেক্ট হিসেবে নির্দিষ্ট করা lat/lng স্থানাঙ্কের একটি সেট
- আয়তক্ষেত্রাকার সীমানা (চারটি lat/lng বিন্দু, অথবা একটি LatLngBounds বস্তু )
- একটি অক্ষাংশ/lng কেন্দ্রীভূত ব্যাসার্ধ (মিটারে)
ফলাফল অবজেক্ট এবং google.maps.places.PlacesServiceStatus প্রতিক্রিয়া পরিচালনা করার জন্য আপনাকে findPlaceFromPhoneNumber() এর জন্য একটি কলব্যাক পদ্ধতিও পাস করতে হবে।
ক্ষেত্র (স্থান খুঁজুন পদ্ধতি)
fields প্যারামিটার ব্যবহার করে প্লেস ডেটা টাইপের একটি অ্যারে নির্দিষ্ট করুন যা ফেরত পাঠানো হবে। উদাহরণস্বরূপ: fields: ['formatted_address', 'opening_hours', 'geometry'] । যৌগিক মান নির্দিষ্ট করার সময় একটি বিন্দু ব্যবহার করুন। উদাহরণস্বরূপ: opening_hours.weekday_text ।
ক্ষেত্রগুলি স্থান অনুসন্ধান ফলাফলের সাথে সামঞ্জস্যপূর্ণ, এবং তিনটি বিলিং বিভাগে বিভক্ত: মৌলিক, যোগাযোগ, এবং বায়ুমণ্ডল। মৌলিক ক্ষেত্রগুলি বেস রেটে বিল করা হয় এবং কোনও অতিরিক্ত চার্জ লাগে না। যোগাযোগ এবং বায়ুমণ্ডল ক্ষেত্রগুলি উচ্চ হারে বিল করা হয়। আরও তথ্যের জন্য মূল্য তালিকা দেখুন। ক্ষেত্রটি অনুরোধ করা হয়েছে কিনা তা নির্বিশেষে, প্রতিটি কলের সাথে অ্যাট্রিবিউশন ( html_attributions ) সর্বদা ফেরত দেওয়া হয়।
মৌলিক
মৌলিক বিভাগে নিম্নলিখিত ক্ষেত্রগুলি অন্তর্ভুক্ত রয়েছে:
business_status , formatted_address , geometry , icon , icon_mask_base_uri , icon_background_color , name , permanently_closed ( অপ্রচলিত ), photos , place_id , plus_code , types
যোগাযোগ
যোগাযোগ বিভাগে নিম্নলিখিত ক্ষেত্রটি অন্তর্ভুক্ত রয়েছে:opening_hours(Places Library, Maps JavaScript API-তে অবচিত ।
opening_hours ফলাফল পেতে একটি Place Details অনুরোধ ব্যবহার করুন)।বায়ুমণ্ডল
বায়ুমণ্ডল বিভাগে নিম্নলিখিত ক্ষেত্রগুলি অন্তর্ভুক্ত রয়েছে:price_level , rating , user_ratings_total findPlaceFromQuery() এবং findPlaceFromPhoneNumber() পদ্ধতি দুটি একই ক্ষেত্র গ্রহণ করে এবং তাদের নিজ নিজ প্রতিক্রিয়ায় একই ক্ষেত্রগুলি ফেরত পাঠাতে পারে।
অবস্থান পক্ষপাত সেট করুন (স্থান পদ্ধতি খুঁজুন)
একটি নির্দিষ্ট এলাকায় Find Place-কে পছন্দের ফলাফল দিতে locationBias প্যারামিটার ব্যবহার করুন। আপনি নিম্নলিখিত উপায়ে locationBias সেট করতে পারেন:
একটি নির্দিষ্ট এলাকার পক্ষপাতের ফলাফল:
locationBias: {lat: 37.402105, lng: -122.081974}
অনুসন্ধানের জন্য একটি আয়তক্ষেত্রাকার এলাকা নির্ধারণ করুন:
locationBias: {north: 37.41, south: 37.40, east: -122.08, west: -122.09}
আপনি একটি LatLngBounds ও ব্যবহার করতে পারেন।
একটি নির্দিষ্ট এলাকার উপর কেন্দ্রীভূত একটি ব্যাসার্ধ (মিটারে) নির্ধারণ করুন:
locationBias: {radius: 100, center: {lat: 37.402105, lng: -122.081974}}
কাছাকাছি অনুসন্ধানের অনুরোধ
কাছাকাছি অনুসন্ধান আপনাকে কীওয়ার্ড বা টাইপ অনুসারে একটি নির্দিষ্ট এলাকার মধ্যে স্থান অনুসন্ধান করতে দেয়। কাছাকাছি অনুসন্ধানে সর্বদা একটি অবস্থান অন্তর্ভুক্ত থাকতে হবে, যা দুটি উপায়ের একটিতে নির্দিষ্ট করা যেতে পারে:
- একটি
LatLngBounds। - একটি বৃত্তাকার ক্ষেত্র যা
locationবৈশিষ্ট্যের সংমিশ্রণ হিসাবে সংজ্ঞায়িত করা হয় — যা বৃত্তের কেন্দ্রকে একটিLatLngবস্তু হিসাবে নির্দিষ্ট করে — এবং মিটারে পরিমাপ করা একটি ব্যাসার্ধ।
PlacesService এর nearbySearch() পদ্ধতিতে কল করার মাধ্যমে Places Nearby অনুসন্ধান শুরু হয়, যা PlaceResult অবজেক্টের একটি অ্যারে ফেরত দেবে। মনে রাখবেন যে nearbySearch() পদ্ধতিটি 3.9 সংস্করণে search() পদ্ধতির পরিবর্তে কাজ করে।
service = new google.maps.places.PlacesService(map); service.nearbySearch(request, callback);
এই পদ্ধতিটি নিম্নলিখিত ক্ষেত্রগুলির সাথে একটি অনুরোধ গ্রহণ করে:
- যেকোনো একটি:
-
bounds, যা অবশ্যই একটিgoogle.maps.LatLngBoundsঅবজেক্ট হতে হবে যা আয়তক্ষেত্রাকার অনুসন্ধান এলাকা নির্ধারণ করে। সীমানা এলাকার জন্য সর্বাধিক সমর্থিত তির্যক দূরত্ব প্রায় 100,000 মিটার। - একটি
locationএবং একটিradius; প্রথমটি একটিgoogle.maps.LatLngঅবজেক্ট নেয় এবং দ্বিতীয়টি একটি সরল পূর্ণসংখ্যা নেয়, যা বৃত্তের ব্যাসার্ধকে মিটারে উপস্থাপন করে। সর্বাধিক অনুমোদিত ব্যাসার্ধ হল 50,000 মিটার। মনে রাখবেন যে যখনrankByDISTANCE তে সেট করা থাকে, তখন আপনাকে একটিlocationনির্দিষ্ট করতে হবে কিন্তু আপনি একটিradiusবাboundsনির্দিষ্ট করতে পারবেন না।
-
-
keyword( ঐচ্ছিক ) — একটি শব্দ যা সমস্ত উপলব্ধ ক্ষেত্রের সাথে মিলবে, যার মধ্যে নাম, ধরণ এবং ঠিকানা, সেইসাথে গ্রাহক পর্যালোচনা এবং অন্যান্য তৃতীয় পক্ষের সামগ্রী অন্তর্ভুক্ত কিন্তু সীমাবদ্ধ নয়। -
minPriceLevelএবংmaxPriceLevel( ঐচ্ছিক ) — নির্দিষ্ট পরিসরের মধ্যে শুধুমাত্র সেই স্থানগুলিতে ফলাফল সীমাবদ্ধ করে। বৈধ মান 0 (সবচেয়ে সাশ্রয়ী মূল্যের) থেকে 4 (সবচেয়ে ব্যয়বহুল) এর মধ্যে থাকে, যার মধ্যে অন্তর্ভুক্ত। -
nameঅবচিত।keywordসমতুল্য। এই ক্ষেত্রের মানগুলিkeywordক্ষেত্রের মানগুলির সাথে একত্রিত করা হয় এবং একই অনুসন্ধান স্ট্রিংয়ের অংশ হিসাবে পাস করা হয়। -
openNow( ঐচ্ছিক ) — একটি বুলিয়ান মান, যা নির্দেশ করে যে Places পরিষেবা শুধুমাত্র সেইসব স্থান ফেরত দেবে যেগুলি কোয়েরি পাঠানোর সময় ব্যবসার জন্য খোলা ছিল। Google Places ডাটাবেসে খোলার সময় নির্দিষ্ট করে না এমন স্থানগুলি যদি আপনি আপনার কোয়েরিতে এই প্যারামিটারটি অন্তর্ভুক্ত করেন তবে ফেরত দেওয়া হবে না।openNowকেfalseএ সেট করলে কোনও প্রভাব পড়বে না। -
rankBy( ঐচ্ছিক ) — ফলাফল তালিকাভুক্ত করার ক্রম নির্দিষ্ট করে। সম্ভাব্য মানগুলি হল:-
google.maps.places.RankBy.PROMINENCE(ডিফল্ট)। এই বিকল্পটি ফলাফলগুলিকে তাদের গুরুত্বের উপর ভিত্তি করে সাজায়। র্যাঙ্কিং নির্ধারিত ব্যাসার্ধের মধ্যে বিশিষ্ট স্থানগুলিকে নিকটবর্তী স্থানগুলির তুলনায় পছন্দ করবে যা মিলবে কিন্তু কম বিশিষ্ট। Google এর সূচকে স্থানের র্যাঙ্কিং, বিশ্বব্যাপী জনপ্রিয়তা এবং অন্যান্য কারণগুলির দ্বারা বিশিষ্টতা প্রভাবিত হতে পারে। যখনgoogle.maps.places.RankBy.PROMINENCEনির্দিষ্ট করা হয়, তখনradiusপ্যারামিটারটি প্রয়োজন। -
google.maps.places.RankBy.DISTANCE। এই বিকল্পটি নির্দিষ্টlocationথেকে তাদের দূরত্ব অনুসারে ঊর্ধ্বমুখী ক্রমে ফলাফল সাজায় (প্রয়োজনীয়)। মনে রাখবেন যে আপনি যদিRankBy.DISTANCEনির্দিষ্ট করেন তবে আপনি একটি কাস্টমboundsএবং/অথবাradiusনির্দিষ্ট করতে পারবেন না। যখন আপনিRankBy.DISTANCEনির্দিষ্ট করেন, তখন এক বা একাধিকkeyword,name, বাtypeপ্রয়োজন।
-
-
type— নির্দিষ্ট ধরণের সাথে মিলে যাওয়া স্থানগুলিতে ফলাফল সীমাবদ্ধ করে। শুধুমাত্র একটি টাইপ নির্দিষ্ট করা যেতে পারে (যদি একাধিক টাইপ প্রদান করা হয়, তাহলে প্রথম এন্ট্রির পরবর্তী সকল টাইপ উপেক্ষা করা হবে)। সমর্থিত টাইপের তালিকা দেখুন।
ফলাফল অবজেক্ট এবং google.maps.places.PlacesServiceStatus প্রতিক্রিয়া পরিচালনা করার জন্য আপনাকে nearbySearch() এ একটি কলব্যাক পদ্ধতিও পাস করতে হবে।
var map; var service; var infowindow; function initialize() { var pyrmont = new google.maps.LatLng(-33.8665433, 151.1956316); map = new google.maps.Map(document.getElementById('map'), { center: pyrmont, zoom: 15 }); var request = { location: pyrmont, radius: 500, type: 'restaurant' }; service = new google.maps.places.PlacesService(map); service.nearbySearch(request, callback); } function callback(results, status) { if (status == google.maps.places.PlacesServiceStatus.OK) { for (var i = 0; i < results.length; i++) { createMarker(results[i]); } } }
টেক্সট সার্চের অনুরোধ
গুগল প্লেস টেক্সট সার্চ সার্ভিস হল একটি ওয়েব সার্ভিস যা একটি স্ট্রিং-এর উপর ভিত্তি করে কিছু স্থান সম্পর্কে তথ্য প্রদান করে — উদাহরণস্বরূপ "নিউ ইয়র্কের পিৎজা" অথবা "অটওয়ার কাছাকাছি জুতার দোকান"। এই সার্ভিসটি টেক্সট স্ট্রিংয়ের সাথে মিলে যাওয়া স্থানগুলির তালিকা এবং সেট করা যেকোনো অবস্থানের পক্ষপাত সহ প্রতিক্রিয়া জানায়। অনুসন্ধান প্রতিক্রিয়ায় স্থানগুলির একটি তালিকা অন্তর্ভুক্ত থাকবে। প্রতিক্রিয়ার যেকোনো স্থান সম্পর্কে আরও তথ্যের জন্য আপনি স্থানের বিবরণের অনুরোধ পাঠাতে পারেন।
PlacesService এর textSearch() পদ্ধতিতে কল করার মাধ্যমে টেক্সট অনুসন্ধান শুরু হয়।
service = new google.maps.places.PlacesService(map); service.textSearch(request, callback);
এই পদ্ধতিটি নিম্নলিখিত ক্ষেত্রগুলির সাথে একটি অনুরোধ গ্রহণ করে:
-
query( প্রয়োজনীয় ) যে টেক্সট স্ট্রিংটিতে অনুসন্ধান করতে হবে, উদাহরণস্বরূপ: "রেস্তোরাঁ" অথবা "১২৩ মেইন স্ট্রিট"। এটি অবশ্যই একটি স্থানের নাম, ঠিকানা, অথবা প্রতিষ্ঠানের বিভাগ হতে হবে। অন্য যেকোনো ধরণের ইনপুট ত্রুটি তৈরি করতে পারে এবং বৈধ ফলাফল ফেরত দেওয়ার নিশ্চয়তা দেয় না। প্লেসেস পরিষেবা এই স্ট্রিংয়ের উপর ভিত্তি করে প্রার্থীর মিলগুলি ফেরত দেবে এবং তাদের অনুভূত প্রাসঙ্গিকতার উপর ভিত্তি করে ফলাফলগুলি অর্ডার করবে। অনুসন্ধান অনুরোধেtypeপ্যারামিটারটি ব্যবহার করা হলে এই প্যারামিটারটি ঐচ্ছিক হয়ে যায়। - ঐচ্ছিকভাবে:
-
openNow— একটি বুলিয়ান মান, যা নির্দেশ করে যে Places পরিষেবা শুধুমাত্র সেইসব স্থান ফেরত দেবে যেগুলি কোয়েরি পাঠানোর সময় ব্যবসার জন্য খোলা ছিল। Google Places ডাটাবেসে খোলার সময় নির্দিষ্ট করে না এমন স্থানগুলি যদি আপনি আপনার কোয়েরিতে এই প্যারামিটারটি অন্তর্ভুক্ত করেন তবে ফেরত দেওয়া হবে না।openNowকেfalseএ সেট করলে কোনও প্রভাব পড়বে না। -
minPriceLevelএবংmaxPriceLevel— ফলাফল শুধুমাত্র নির্দিষ্ট মূল্য স্তরের মধ্যে সীমাবদ্ধ করে। বৈধ মানগুলি 0 (সবচেয়ে সাশ্রয়ী মূল্যের) থেকে 4 (সবচেয়ে ব্যয়বহুল) পর্যন্ত, সমেত। - যেকোনো একটি:
-
bounds, যা অবশ্যই একটিgoogle.maps.LatLngBoundsঅবজেক্ট হতে হবে যা আয়তক্ষেত্রাকার অনুসন্ধান এলাকা নির্ধারণ করে। সীমানা এলাকার জন্য সর্বাধিক সমর্থিত তির্যক দূরত্ব প্রায় 100,000 মিটার। - একটি
locationএবং একটিradius— আপনি একটিlocationএবং একটিradiusপ্যারামিটার পাস করে একটি নির্দিষ্ট বৃত্তে ফলাফলগুলিকে পক্ষপাত করতে পারেন। এটি প্লেস পরিষেবাকে সেই বৃত্তের মধ্যে ফলাফল দেখানো পছন্দ করার নির্দেশ দেবে। নির্ধারিত এলাকার বাইরের ফলাফলগুলি এখনও প্রদর্শিত হতে পারে। অবস্থানটি একটিgoogle.maps.LatLngবস্তু নেয় এবং ব্যাসার্ধটি একটি সাধারণ পূর্ণসংখ্যা নেয়, যা বৃত্তের ব্যাসার্ধকে মিটারে প্রতিনিধিত্ব করে। সর্বাধিক অনুমোদিত ব্যাসার্ধ হল 50,000 মিটার।
-
-
type— নির্দিষ্ট ধরণের সাথে মিলে যাওয়া স্থানগুলিতে ফলাফল সীমাবদ্ধ করে। শুধুমাত্র একটি টাইপ নির্দিষ্ট করা যেতে পারে (যদি একাধিক টাইপ প্রদান করা হয়, তাহলে প্রথম এন্ট্রির পরবর্তী সকল টাইপ উপেক্ষা করা হবে)। সমর্থিত টাইপের তালিকা দেখুন।
-
ফলাফল অবজেক্ট এবং google.maps.places.PlacesServiceStatus প্রতিক্রিয়া পরিচালনা করার জন্য আপনাকে textSearch() এ একটি কলব্যাক পদ্ধতিও পাস করতে হবে।
var map; var service; var infowindow; function initialize() { var pyrmont = new google.maps.LatLng(-33.8665433,151.1956316); map = new google.maps.Map(document.getElementById('map'), { center: pyrmont, zoom: 15 }); var request = { location: pyrmont, radius: 500, query: 'restaurant' }; service = new google.maps.places.PlacesService(map); service.textSearch(request, callback); } function callback(results, status) { if (status == google.maps.places.PlacesServiceStatus.OK) { for (var i = 0; i < results.length; i++) { var place = results[i]; createMarker(results[i]); } } }
অনুসন্ধান প্রতিক্রিয়া
স্ট্যাটাস কোড
PlacesServiceStatus রেসপন্স অবজেক্টে অনুরোধের স্থিতি থাকে এবং এতে ডিবাগিং তথ্য থাকতে পারে যা আপনাকে স্থানের অনুরোধ কেন ব্যর্থ হয়েছে তা ট্র্যাক করতে সাহায্য করবে। সম্ভাব্য স্থিতির মানগুলি হল:
-
INVALID_REQUEST: এই অনুরোধটি অবৈধ ছিল। -
OK: প্রতিক্রিয়াটিতে একটি বৈধ ফলাফল রয়েছে। -
OVER_QUERY_LIMIT: ওয়েবপৃষ্ঠাটি তার অনুরোধের কোটা অতিক্রম করেছে। -
REQUEST_DENIED: ওয়েবপৃষ্ঠাটি PlacesService ব্যবহার করার অনুমতিপ্রাপ্ত নয়। -
UNKNOWN_ERROR: সার্ভার ত্রুটির কারণে PlaceService অনুরোধটি প্রক্রিয়া করা যায়নি। আবার চেষ্টা করলে অনুরোধটি সফল হতে পারে। -
ZERO_RESULTS: এই অনুরোধের জন্য কোন ফলাফল পাওয়া যায়নি।
স্থান অনুসন্ধানের ফলাফল
findPlace() , nearbySearch() এবং textSearch() ফাংশনগুলি PlaceResult অবজেক্টের একটি অ্যারে ফেরত দেয়।
প্রতিটি PlaceResult অবজেক্টে নিম্নলিখিত বৈশিষ্ট্য থাকতে পারে:
-
business_statusযদি কোনও ব্যবসা হয়, তাহলে সেই স্থানের কার্যক্ষম অবস্থা নির্দেশ করে। এতে নিম্নলিখিত মানগুলির মধ্যে একটি থাকতে পারে:-
OPERATIONAL -
CLOSED_TEMPORARILY -
CLOSED_PERMANENTLY
business_statusফেরত দেওয়া হবে না। -
-
formatted_addressহল একটি স্ট্রিং যার মধ্যে এই স্থানের মানুষের পঠনযোগ্য ঠিকানা রয়েছে।formatted_addressবৈশিষ্ট্যটি শুধুমাত্র একটি Text Search এর জন্য ফেরত পাঠানো হয়।প্রায়শই এই ঠিকানাটি ডাক ঠিকানার সমতুল্য। মনে রাখবেন যে কিছু দেশ, যেমন যুক্তরাজ্য, লাইসেন্সিং বিধিনিষেধের কারণে প্রকৃত ডাক ঠিকানা বিতরণের অনুমতি দেয় না।
ফর্ম্যাট করা ঠিকানাটি যুক্তিসঙ্গতভাবে এক বা একাধিক ঠিকানা উপাদান দিয়ে তৈরি। উদাহরণস্বরূপ, "111 8th Avenue, New York, NY" ঠিকানাটিতে নিম্নলিখিত উপাদানগুলি রয়েছে: "111" (রাস্তার নম্বর), "8th Avenue" (রুট), "New York" (শহর) এবং "NY" (মার্কিন রাজ্য)।
ফরম্যাটেড ঠিকানাটি প্রোগ্রাম্যাটিকভাবে পার্স করবেন না। এর পরিবর্তে আপনার পৃথক ঠিকানা উপাদানগুলি ব্যবহার করা উচিত, যা API প্রতিক্রিয়াতে ফরম্যাটেড ঠিকানা ক্ষেত্র ছাড়াও অন্তর্ভুক্ত থাকে।
-
geometry: স্থানের জ্যামিতি-সম্পর্কিত তথ্য। এর মধ্যে রয়েছে:-
locationস্থানের অক্ষাংশ এবং দ্রাঘিমাংশ প্রদান করে। - এই স্থানটি দেখার সময়
viewportমানচিত্রে পছন্দের ভিউপোর্টটি সংজ্ঞায়িত করে।
-
-
permanently_closed( deprecated ) হল একটি বুলিয়ান পতাকা যা নির্দেশ করে যে স্থানটি স্থায়ীভাবে নাকি অস্থায়ীভাবে বন্ধ হয়ে গেছে (মানtrue)।permanently_closedব্যবহার করবেন না। পরিবর্তে, ব্যবসার কর্মক্ষম অবস্থা জানতেbusiness_statusব্যবহার করুন। -
plus_code( ওপেন লোকেশন কোড এবং প্লাস কোড দেখুন) হল একটি এনকোডেড লোকেশন রেফারেন্স, যা অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্ক থেকে প্রাপ্ত, যা একটি ক্ষেত্রফলকে প্রতিনিধিত্ব করে: ১/৮০০০তম ডিগ্রি বাই ১/৮০০০তম ডিগ্রি (নিরক্ষরেখায় প্রায় ১৪ মি x ১৪ মি) বা তার চেয়ে ছোট। প্লাস কোডগুলি এমন জায়গায় রাস্তার ঠিকানার প্রতিস্থাপন হিসাবে ব্যবহার করা যেতে পারে যেখানে সেগুলি বিদ্যমান নেই (যেখানে ভবনগুলি নম্বরযুক্ত নয় বা রাস্তার নামকরণ করা হয়নি)।প্লাস কোডটি একটি গ্লোবাল কোড এবং একটি যৌগিক কোড হিসাবে ফর্ম্যাট করা হয়েছে:
-
global_codeহল একটি 4 অক্ষরের এরিয়া কোড এবং 6 অক্ষর বা তার বেশি লম্বা স্থানীয় কোড (849VCWC8+R9)। -
compound_codeহল ৬ অক্ষর বা তার বেশি লম্বা একটি স্থানীয় কোড যার একটি স্পষ্ট অবস্থান রয়েছে (CWC8+R9, মাউন্টেন ভিউ, CA, USA)। এই কন্টেন্টটি প্রোগ্রাম্যাটিকভাবে পার্স করবেন না।
-
-
html_attributions: অনুসন্ধান ফলাফল প্রদর্শনের সময় আপনার প্রদর্শিত হওয়া উচিত এমন একটি অ্যাট্রিবিউশন অ্যারে। অ্যারের প্রতিটি এন্ট্রিতে একটি একক অ্যাট্রিবিউশনের জন্য HTML টেক্সট থাকে। দ্রষ্টব্য: এটি সম্পূর্ণ অনুসন্ধান প্রতিক্রিয়ার জন্য সমস্ত অ্যাট্রিবিউশনের একটি সমষ্টি। অতএব, প্রতিক্রিয়ার সমস্তPlaceResultঅবজেক্টে অভিন্ন অ্যাট্রিবিউশন তালিকা রয়েছে। -
iconএকটি রঙিন 71px x 71px PNG আইকনের URL প্রদান করে। -
icon_mask_base_uriএকটি অ-রঙিন আইকনের জন্য বেস URL প্রদান করে, .svg বা .png এক্সটেনশন বাদ দিয়ে। -
icon_background_colorস্থানের বিভাগের জন্য ডিফল্ট HEX রঙের কোড প্রদান করে। -
name: জায়গার নাম। -
opening_hoursনিম্নলিখিত তথ্য থাকতে পারে:-
open_nowহল একটি বুলিয়ান মান যা নির্দেশ করে যে স্থানটি বর্তমান সময়ে খোলা আছে কিনা (Places Library, Maps JavaScript API-তে অবচিত , পরিবর্তেutc_offset_minutesব্যবহার করুন)।
-
-
place_idহল একটি টেক্সট শনাক্তকারী যা একটি স্থানকে অনন্যভাবে শনাক্ত করে। স্থান সম্পর্কে তথ্য পুনরুদ্ধার করতে, স্থানের বিবরণ অনুরোধে এই শনাক্তকারীটি পাস করুন। স্থান আইডি দিয়ে একটি স্থান কীভাবে উল্লেখ করবেন সে সম্পর্কে আরও জানুন। -
ratingস্থানটির রেটিং রয়েছে, ০.০ থেকে ৫.০ পর্যন্ত, যা ব্যবহারকারীদের সমষ্টিগত পর্যালোচনার উপর ভিত্তি করে। -
typesএই স্থানের জন্য বিভিন্ন ধরণের (যেমন,["political", "locality"]অথবা["restaurant", "lodging"])। এই অ্যারেতে একাধিক মান থাকতে পারে, অথবা খালি থাকতে পারে। পূর্ব নোটিশ ছাড়াই নতুন মান চালু করা যেতে পারে। সমর্থিত প্রকারের তালিকা দেখুন। -
vicinity: স্থানের জন্য একটি সরলীকৃত ঠিকানা, যার মধ্যে রাস্তার নাম, রাস্তার নম্বর এবং এলাকা অন্তর্ভুক্ত থাকবে, কিন্তু প্রদেশ/রাজ্য, পোস্টাল কোড বা দেশ থাকবে না। উদাহরণস্বরূপ, গুগলের সিডনি, অস্ট্রেলিয়া অফিসেরvicinityমান5/48 Pirrama Road, Pyrmont।
অতিরিক্ত ফলাফল অ্যাক্সেস করুন
ডিফল্টরূপে, প্রতিটি স্থান অনুসন্ধান প্রতিটি প্রশ্নের জন্য সর্বাধিক ২০টি ফলাফল প্রদান করে। তবে, প্রতিটি অনুসন্ধান তিনটি পৃষ্ঠায় বিভক্ত করে ৬০টি ফলাফল প্রদান করতে পারে। PlaceSearchPagination অবজেক্ট ব্যবহার করে অতিরিক্ত পৃষ্ঠা পাওয়া যায়। অতিরিক্ত পৃষ্ঠা অ্যাক্সেস করার জন্য আপনাকে একটি কলব্যাক ফাংশন ব্যবহার করে PlaceSearchPagination অবজেক্টটি ক্যাপচার করতে হবে। PlaceSearchPagination অবজেক্টটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
-
hasNextPageএকটি বুলিয়ান বৈশিষ্ট্য যা নির্দেশ করে যে আরও ফলাফল উপলব্ধ কিনা। যখন একটি অতিরিক্ত ফলাফল পৃষ্ঠা থাকে তখনtrue। -
nextPage()একটি ফাংশন যা পরবর্তী ফলাফলের সেটটি ফেরত দেবে। একটি অনুসন্ধান সম্পাদন করার পরে, পরবর্তী ফলাফলের পৃষ্ঠাটি উপলব্ধ হওয়ার আগে আপনাকে দুই সেকেন্ড অপেক্ষা করতে হবে।
পরবর্তী ফলাফল দেখতে, nextPage কল করুন। পরবর্তী ফলাফল প্রদর্শনের আগে প্রতিটি ফলাফলের পৃষ্ঠা প্রদর্শন করতে হবে। মনে রাখবেন যে প্রতিটি অনুসন্ধান আপনার ব্যবহারের সীমার বিপরীতে একটি একক অনুরোধ হিসাবে গণনা করা হবে।
নিচের উদাহরণটি দেখায় যে কীভাবে আপনার কলব্যাক ফাংশনটি PlaceSearchPagination অবজেক্ট ক্যাপচার করার জন্য পরিবর্তন করবেন, যাতে আপনি একাধিক অনুসন্ধান অনুরোধ ইস্যু করতে পারেন।
টাইপস্ক্রিপ্ট
// This example requires the Places library. Include the libraries=places // parameter when you first load the API. For example: // <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places"> function initMap(): void { // Create the map. const pyrmont = { lat: -33.866, lng: 151.196 }; const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { center: pyrmont, zoom: 17, mapId: "8d193001f940fde3", } as google.maps.MapOptions ); // Create the places service. const service = new google.maps.places.PlacesService(map); let getNextPage: () => void | false; const moreButton = document.getElementById("more") as HTMLButtonElement; moreButton.onclick = function () { moreButton.disabled = true; if (getNextPage) { getNextPage(); } }; // Perform a nearby search. service.nearbySearch( { location: pyrmont, radius: 500, type: "store" }, ( results: google.maps.places.PlaceResult[] | null, status: google.maps.places.PlacesServiceStatus, pagination: google.maps.places.PlaceSearchPagination | null ) => { if (status !== "OK" || !results) return; addPlaces(results, map); moreButton.disabled = !pagination || !pagination.hasNextPage; if (pagination && pagination.hasNextPage) { getNextPage = () => { // Note: nextPage will call the same handler function as the initial call pagination.nextPage(); }; } } ); } function addPlaces( places: google.maps.places.PlaceResult[], map: google.maps.Map ) { const placesList = document.getElementById("places") as HTMLElement; for (const place of places) { if (place.geometry && place.geometry.location) { const image = { url: place.icon!, size: new google.maps.Size(71, 71), origin: new google.maps.Point(0, 0), anchor: new google.maps.Point(17, 34), scaledSize: new google.maps.Size(25, 25), }; new google.maps.Marker({ map, icon: image, title: place.name!, position: place.geometry.location, }); const li = document.createElement("li"); li.textContent = place.name!; placesList.appendChild(li); li.addEventListener("click", () => { map.setCenter(place.geometry!.location!); }); } } } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;
জাভাস্ক্রিপ্ট
// This example requires the Places library. Include the libraries=places // parameter when you first load the API. For example: // <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places"> function initMap() { // Create the map. const pyrmont = { lat: -33.866, lng: 151.196 }; const map = new google.maps.Map(document.getElementById("map"), { center: pyrmont, zoom: 17, mapId: "8d193001f940fde3", }); // Create the places service. const service = new google.maps.places.PlacesService(map); let getNextPage; const moreButton = document.getElementById("more"); moreButton.onclick = function () { moreButton.disabled = true; if (getNextPage) { getNextPage(); } }; // Perform a nearby search. service.nearbySearch( { location: pyrmont, radius: 500, type: "store" }, (results, status, pagination) => { if (status !== "OK" || !results) return; addPlaces(results, map); moreButton.disabled = !pagination || !pagination.hasNextPage; if (pagination && pagination.hasNextPage) { getNextPage = () => { // Note: nextPage will call the same handler function as the initial call pagination.nextPage(); }; } }, ); } function addPlaces(places, map) { const placesList = document.getElementById("places"); for (const place of places) { if (place.geometry && place.geometry.location) { const image = { url: place.icon, size: new google.maps.Size(71, 71), origin: new google.maps.Point(0, 0), anchor: new google.maps.Point(17, 34), scaledSize: new google.maps.Size(25, 25), }; new google.maps.Marker({ map, icon: image, title: place.name, position: place.geometry.location, }); const li = document.createElement("li"); li.textContent = place.name; placesList.appendChild(li); li.addEventListener("click", () => { map.setCenter(place.geometry.location); }); } } } window.initMap = initMap;
নমুনা চেষ্টা করুন
স্থানের বিবরণ
কোনও এলাকার মধ্যে স্থানের তালিকা প্রদানের পাশাপাশি, স্থান পরিষেবা একটি নির্দিষ্ট স্থান সম্পর্কে বিস্তারিত তথ্যও ফেরত দিতে পারে। একবার স্থান অনুসন্ধানের প্রতিক্রিয়ায় কোনও স্থান ফেরত দেওয়া হয়ে গেলে, তার স্থান আইডি ব্যবহার করে সেই স্থান সম্পর্কে অতিরিক্ত বিশদ বিবরণ, যেমন এর সম্পূর্ণ ঠিকানা, ফোন নম্বর, ব্যবহারকারীর রেটিং এবং পর্যালোচনা ইত্যাদি অনুরোধ করা যেতে পারে।
স্থানের বিবরণের অনুরোধ
পরিষেবার getDetails() পদ্ধতিতে কল করে স্থানের বিবরণ অনুরোধ করা হয়।
service = new google.maps.places.PlacesService(map); service.getDetails(request, callback);
এই পদ্ধতিতে একটি অনুরোধ নেওয়া হয়, যার মধ্যে একটি স্থানের placeId থাকে এবং কোন ধরণের স্থানের ডেটা ফেরত পাঠানো হবে তা নির্দেশ করে এমন ক্ষেত্রগুলি থাকে। স্থান ID দিয়ে কীভাবে একটি স্থান উল্লেখ করতে হয় সে সম্পর্কে আরও জানুন।
এটি একটি কলব্যাক পদ্ধতিও গ্রহণ করে, যা google.maps.places.PlacesServiceStatus প্রতিক্রিয়ায় পাস করা স্ট্যাটাস কোড, সেইসাথে google.maps.places.PlaceResult অবজেক্ট পরিচালনা করতে হবে।
var request = { placeId: 'ChIJN1t_tDeuEmsRUsoyG83frY4', fields: ['name', 'rating', 'formatted_phone_number', 'geometry'] }; service = new google.maps.places.PlacesService(map); service.getDetails(request, callback); function callback(place, status) { if (status == google.maps.places.PlacesServiceStatus.OK) { createMarker(place); } }
ক্ষেত্র (স্থানের বিবরণ)
fields প্যারামিটারটি স্ট্রিংগুলির একটি অ্যারে (ক্ষেত্রের নাম) নেয়। fields প্যারামিটার ব্যবহার করে প্লেস ডেটা টাইপের একটি অ্যারে নির্দিষ্ট করুন যা ফেরত পাঠানো হবে। উদাহরণস্বরূপ: fields: ['address_components', 'opening_hours', 'geometry'] । যৌগিক মান নির্দিষ্ট করার সময় একটি বিন্দু ব্যবহার করুন। উদাহরণস্বরূপ: opening_hours.weekday_text ।
ক্ষেত্রগুলি স্থান বিবরণী ফলাফলের সাথে সামঞ্জস্যপূর্ণ, এবং তিনটি বিলিং বিভাগে বিভক্ত: মৌলিক, যোগাযোগ, এবং বায়ুমণ্ডল। মৌলিক ক্ষেত্রগুলি বেস রেটে বিল করা হয় এবং কোনও অতিরিক্ত চার্জ লাগে না। যোগাযোগ এবং বায়ুমণ্ডল ক্ষেত্রগুলি উচ্চ হারে বিল করা হয়। আরও তথ্যের জন্য মূল্য তালিকা দেখুন। অনুরোধ করা হয়েছে কিনা তা নির্বিশেষে, প্রতিটি কলের সাথে অ্যাট্রিবিউশন ( html_attributions ) সর্বদা ফেরত দেওয়া হয়।
মৌলিক
মৌলিক বিভাগে নিম্নলিখিত ক্ষেত্রগুলি অন্তর্ভুক্ত রয়েছে:
address_components , adr_address , business_status , formatted_address , geometry , icon , icon_mask_base_uri , icon_background_color , name , permanently_closed ( অপ্রচলিত ), photo , place_id , plus_code , type , url , utc_offset (প্লেসেস লাইব্রেরিতে অপ্রচলিত , ম্যাপস জাভাস্ক্রিপ্ট এপিআই), utc_offset_minutes , vicinity
যোগাযোগ
যোগাযোগ বিভাগে নিম্নলিখিত ক্ষেত্রগুলি অন্তর্ভুক্ত রয়েছে:
formatted_phone_number , international_phone_number , opening_hours , website
বায়ুমণ্ডল
বায়ুমণ্ডল বিভাগে নিম্নলিখিত ক্ষেত্রগুলি অন্তর্ভুক্ত রয়েছে: price_level , rating , reviews , user_ratings_total
স্থান ক্ষেত্র সম্পর্কে আরও জানুন। স্থানের ডেটা অনুরোধগুলি কীভাবে বিল করা হয় সে সম্পর্কে আরও তথ্যের জন্য, ব্যবহার এবং বিলিং দেখুন।
স্থানের বিবরণের প্রতিক্রিয়া
স্ট্যাটাস কোড
PlacesServiceStatus রেসপন্স অবজেক্টে অনুরোধের স্থিতি থাকে এবং এতে ডিবাগিং তথ্য থাকতে পারে যা আপনাকে স্থানের বিবরণের অনুরোধ কেন ব্যর্থ হয়েছে তা ট্র্যাক করতে সাহায্য করবে। সম্ভাব্য স্থিতির মানগুলি হল:
-
INVALID_REQUEST: এই অনুরোধটি অবৈধ ছিল। -
OK: প্রতিক্রিয়াটিতে একটি বৈধ ফলাফল রয়েছে। -
OVER_QUERY_LIMIT: ওয়েবপৃষ্ঠাটি তার অনুরোধের কোটা অতিক্রম করেছে। -
NOT_FOUNDউল্লেখিত অবস্থানটি স্থানের ডাটাবেসে পাওয়া যায়নি। -
REQUEST_DENIED: ওয়েবপৃষ্ঠাটি PlacesService ব্যবহার করার অনুমতিপ্রাপ্ত নয়। -
UNKNOWN_ERROR: সার্ভার ত্রুটির কারণে PlaceService অনুরোধটি প্রক্রিয়া করা যায়নি। আবার চেষ্টা করলে অনুরোধটি সফল হতে পারে। -
ZERO_RESULTS: এই অনুরোধের জন্য কোন ফলাফল পাওয়া যায়নি।
স্থানের বিবরণের ফলাফল
একটি সফল getDetails() কল নিম্নলিখিত বৈশিষ্ট্য সহ একটি PlaceResult অবজেক্ট ফেরত পাঠায়:
-
address_components: এই ঠিকানার জন্য প্রযোজ্য পৃথক উপাদান ধারণকারী একটি অ্যারে।প্রতিটি ঠিকানা উপাদানে সাধারণত নিম্নলিখিত ক্ষেত্রগুলি থাকে:
-
types[]হল একটি অ্যারে যা ঠিকানা উপাদানের ধরণ নির্দেশ করে। ঠিকানা উপাদানের জন্য কোনও পরিচিত প্রকার না থাকলে ঠিকানা উপাদানের একটি খালি টাইপ অ্যারে থাকতে পারে। প্রয়োজনে API নতুন ধরণের মান যুক্ত করতে পারে। আরও তথ্যের জন্য, ঠিকানার ধরণ এবং ঠিকানা উপাদানের ধরণ দেখুন। -
long_nameহলো জিওকোডার দ্বারা ফেরত দেওয়া ঠিকানা উপাদানের পূর্ণাঙ্গ বিবরণ বা নাম। -
short_nameহল ঠিকানা উপাদানের জন্য একটি সংক্ষিপ্ত পাঠ্য নাম, যদি পাওয়া যায়। উদাহরণস্বরূপ, আলাস্কা রাজ্যের জন্য একটি ঠিকানা উপাদানের 2-অক্ষরের পোস্টাল সংক্ষেপণ ব্যবহার করে "আলাস্কা" এর একটিlong_nameএবং "AK" এর একটিshort_nameথাকতে পারে।
address_components[]অ্যারে সম্পর্কে নিম্নলিখিত তথ্যগুলি লক্ষ্য করুন:- ঠিকানা উপাদানগুলির অ্যারেতে
formatted_addressএর চেয়ে বেশি উপাদান থাকতে পারে। - অ্যারেতে অবশ্যই সমস্ত রাজনৈতিক সত্তা অন্তর্ভুক্ত থাকে না যেখানে একটি ঠিকানা থাকে,
formatted_addressএ অন্তর্ভুক্ত থাকা ব্যতীত। একটি নির্দিষ্ট ঠিকানা ধারণকারী সমস্ত রাজনৈতিক সত্তা পুনরুদ্ধার করতে, আপনার বিপরীত জিওকোডিং ব্যবহার করা উচিত, অনুরোধের প্যারামিটার হিসাবে ঠিকানার অক্ষাংশ/দ্রাঘিমাংশ অতিক্রম করা উচিত। - বিভিন্ন অনুরোধের মধ্যে প্রতিক্রিয়ার ফর্ম্যাট একই থাকবে এমন নিশ্চয়তা নেই। বিশেষ করে, অনুরোধ করা ঠিকানার উপর ভিত্তি করে
address_componentsএর সংখ্যা পরিবর্তিত হয় এবং একই ঠিকানার জন্য সময়ের সাথে সাথে পরিবর্তিত হতে পারে। একটি উপাদান অ্যারেতে অবস্থান পরিবর্তন করতে পারে। উপাদানের ধরণ পরিবর্তন হতে পারে। পরবর্তী প্রতিক্রিয়ায় একটি নির্দিষ্ট উপাদান অনুপস্থিত থাকতে পারে।
-
-
business_statusযদি কোনও ব্যবসা হয়, তাহলে সেই স্থানের কার্যক্ষম অবস্থা নির্দেশ করে। এতে নিম্নলিখিত মানগুলির মধ্যে একটি থাকতে পারে:-
OPERATIONAL -
CLOSED_TEMPORARILY -
CLOSED_PERMANENTLY
business_statusফেরত দেওয়া হবে না। -
-
formatted_address: এই জায়গার মানুষের পঠনযোগ্য ঠিকানা।প্রায়শই এই ঠিকানাটি ডাক ঠিকানার সমতুল্য। মনে রাখবেন যে কিছু দেশ, যেমন যুক্তরাজ্য, লাইসেন্সিং বিধিনিষেধের কারণে প্রকৃত ডাক ঠিকানা বিতরণের অনুমতি দেয় না।
ফর্ম্যাট করা ঠিকানাটি যুক্তিসঙ্গতভাবে এক বা একাধিক ঠিকানা উপাদান দিয়ে তৈরি। উদাহরণস্বরূপ, "111 8th Avenue, New York, NY" ঠিকানাটিতে নিম্নলিখিত উপাদানগুলি রয়েছে: "111" (রাস্তার নম্বর), "8th Avenue" (রুট), "New York" (শহর) এবং "NY" (মার্কিন রাজ্য)।
ফরম্যাটেড ঠিকানাটি প্রোগ্রাম্যাটিকভাবে পার্স করবেন না। এর পরিবর্তে আপনার পৃথক ঠিকানা উপাদানগুলি ব্যবহার করা উচিত, যা API প্রতিক্রিয়াতে ফরম্যাটেড ঠিকানা ক্ষেত্র ছাড়াও অন্তর্ভুক্ত থাকে।
-
formatted_phone_number: স্থানের ফোন নম্বর, নম্বরের আঞ্চলিক রীতি অনুসারে ফর্ম্যাট করা। -
geometry: স্থানের জ্যামিতি-সম্পর্কিত তথ্য। এর মধ্যে রয়েছে:-
locationস্থানের অক্ষাংশ এবং দ্রাঘিমাংশ প্রদান করে। - এই স্থানটি দেখার সময়
viewportমানচিত্রে পছন্দের ভিউপোর্টটি সংজ্ঞায়িত করে।
-
-
permanently_closed( deprecated ) হল একটি বুলিয়ান পতাকা যা নির্দেশ করে যে স্থানটি স্থায়ীভাবে নাকি অস্থায়ীভাবে বন্ধ হয়ে গেছে (মানtrue)।permanently_closedব্যবহার করবেন না। পরিবর্তে, ব্যবসার কর্মক্ষম অবস্থা জানতেbusiness_statusব্যবহার করুন। -
plus_code( ওপেন লোকেশন কোড এবং প্লাস কোড দেখুন) হল একটি এনকোডেড লোকেশন রেফারেন্স, যা অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্ক থেকে প্রাপ্ত, যা একটি ক্ষেত্রফলকে প্রতিনিধিত্ব করে: ১/৮০০০তম ডিগ্রি বাই ১/৮০০০তম ডিগ্রি (নিরক্ষরেখায় প্রায় ১৪ মি x ১৪ মি) বা তার চেয়ে ছোট। প্লাস কোডগুলি এমন জায়গায় রাস্তার ঠিকানার প্রতিস্থাপন হিসাবে ব্যবহার করা যেতে পারে যেখানে সেগুলি বিদ্যমান নেই (যেখানে ভবনগুলি নম্বরযুক্ত নয় বা রাস্তার নামকরণ করা হয়নি)।প্লাস কোডটি একটি গ্লোবাল কোড এবং একটি যৌগিক কোড হিসাবে ফর্ম্যাট করা হয়েছে:
-
global_codeহল একটি 4 অক্ষরের এরিয়া কোড এবং 6 অক্ষর বা তার বেশি লম্বা স্থানীয় কোড (849VCWC8+R9)। -
compound_codeহল ৬ অক্ষর বা তার বেশি লম্বা একটি স্থানীয় কোড যার একটি স্পষ্ট অবস্থান রয়েছে (CWC8+R9, মাউন্টেন ভিউ, CA, USA)। এই কন্টেন্টটি প্রোগ্রাম্যাটিকভাবে পার্স করবেন না।
-
-
html_attributions: এই স্থানের ফলাফলের জন্য অ্যাট্রিবিউশন টেক্সট প্রদর্শিত হবে। -
icon: একটি চিত্র সম্পদের URL যা এই স্থানের ধরণ উপস্থাপন করতে ব্যবহার করা যেতে পারে। -
international_phone_numberএ স্থানটির ফোন নম্বর আন্তর্জাতিক ফর্ম্যাটে থাকে। আন্তর্জাতিক ফর্ম্যাটে দেশের কোড থাকে এবং এর আগে যোগ (+) চিহ্ন থাকে। উদাহরণস্বরূপ, অস্ট্রেলিয়ার সিডনিতে অবস্থিত গুগলের অফিসেরinternational_phone_numberহল+61 2 9374 4000। -
name: জায়গার নাম। -
utc_offsetপ্লেসেস লাইব্রেরি, ম্যাপস জাভাস্ক্রিপ্ট এপিআই-তে অপ্রচলিত , পরিবর্তেutc_offset_minutesব্যবহার করুন। -
utc_offset_minutesএই স্থানের বর্তমান সময় অঞ্চল UTC থেকে অফসেট করা মিনিটের সংখ্যা রয়েছে। উদাহরণস্বরূপ, অস্ট্রেলিয়ার সিডনিতে দিবালোক সংরক্ষণের সময়কালে এটি 660 (UTC থেকে +11 ঘন্টা) হবে, এবং ক্যালিফোর্নিয়ার দিবালোক সংরক্ষণের সময়কালের বাইরের স্থানগুলির জন্য এটি -480 (UTC থেকে -8 ঘন্টা) হবে। -
opening_hoursনিম্নলিখিত তথ্য রয়েছে:-
open_now( Places Library, Maps JavaScript API-তে অবচিত ; এর পরিবর্তে opening_hours.isOpen() ব্যবহার করুন। Place Details সহisOpenকীভাবে ব্যবহার করবেন তার জন্য, Places API ভিডিওতে খোলার সময় কীভাবে পাবেন তা দেখুন।) `open_now` হল একটি বুলিয়ান মান যা নির্দেশ করে যে স্থানটি বর্তমান সময়ে খোলা আছে কিনা। -
periods[]হল কালানুক্রমিক ক্রমে রবিবার থেকে শুরু করে সাত দিনব্যাপী খোলার পিরিয়ডের একটি বিন্যাস। প্রতিটি পিরিয়ডে রয়েছে:-
openদিন এবং সময় অবজেক্টের একটি জোড়া থাকে যা বর্ণনা করে যে স্থানটি কখন খোলে:- ০-৬ এর মধ্যে একটি
day, যা রবিবার থেকে শুরু হওয়া সপ্তাহের দিনগুলির সাথে সম্পর্কিত। উদাহরণস্বরূপ, ২ মানে মঙ্গলবার। -
timeমধ্যে ২৪ ঘন্টার hhmm ফর্ম্যাটে দিনের একটি সময় থাকতে পারে (মানগুলি 0000–2359 এর মধ্যে)।timeস্থানের সময় অঞ্চলে রিপোর্ট করা হবে।
- ০-৬ এর মধ্যে একটি
-
closeস্থানটি কখন বন্ধ হবে তা বর্ণনা করে দিন এবং সময় অবজেক্টের একটি জোড়া থাকতে পারে। দ্রষ্টব্য: যদি একটি স্থান সর্বদা খোলা থাকে, তাহলে প্রতিক্রিয়া থেকেcloseঅংশটি অনুপস্থিত থাকবে। অ্যাপ্লিকেশনগুলি সর্বদা-খোলাকে একটিopenসময়কাল হিসাবে উপস্থাপন করার উপর নির্ভর করতে পারে যেখানে 0 মান সহdayএবং 0000 মান সহtimeএবং কোনওcloseনা।
-
-
weekday_textis an array of seven strings representing the formatted opening hours for each day of the week. If alanguageparameter 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 thelanguageparameter. 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 (valuetrue). Don't usepermanently_closed. Instead, usebusiness_statusto get the operational status of businesses. -
photos[]: an array ofPlacePhotoobjects. APlacePhotocan be used to obtain a photo with thegetUrl()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 using 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. -
reviewsan array of up to five reviews. Each review consists of several components:-
aspects[]contains an array ofPlaceAspectRatingobjects, each of which provides a rating of a single attribute of the establishment. The first object in the array is considered the primary aspect. EachPlaceAspectRatingis defined as:-
typethe name of the aspect that is being rated. The following types are supported:appeal,atmosphere,decor,facilities,food,overall,qualityandservice. -
ratingthe user's rating for this particular aspect, from 0 to 3.
-
-
author_namethe 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_urlthe URL to the users Google+ profile, if available. -
languagean 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'. -
ratingthe user's overall rating for this place. This is a whole number, ranging from 1 to 5. -
textthe user's review. When reviewing a location with Google Places, text reviews are considered optional; therefore, this field may by empty.
-
-
typesAn 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 avicinityvalue of5/48 Pirrama Road, Pyrmont. Thevicinityproperty is only returned for a Nearby Search . -
websitelists the authoritative website for this place, such as a business' homepage.
Note: Multidimensional ratings may not be available for all locations. If there are too few reviews then the details response will either include a legacy rating on a 0.0 to 5.0 scale (if available) or no rating at all.
Reference a Place with a Place ID
A place ID is a unique reference to a place on a Google Map. Place IDs are available for most locations, including businesses, landmarks, parks, and intersections.
To use a place ID in your app you must first look up the ID, which is available in PlaceResult of a Place Search or Details request. You can then use this place ID to look up Place Details .
Place IDs are exempt from the caching restrictions stated in Section 3.2.3(b) of the Google Maps Platform Terms of Service. You can therefore store place ID values for later use. For best practises when storing place IDs, see the place ID overview .
var map; function initialize() { // Create a map centered in Pyrmont, Sydney (Australia). map = new google.maps.Map(document.getElementById('map'), { center: {lat: -33.8666, lng: 151.1958}, zoom: 15 }); // Search for Google's office in Australia. var request = { location: map.getCenter(), radius: '500', query: 'Google Sydney' }; var service = new google.maps.places.PlacesService(map); service.textSearch(request, callback); } // Checks that the PlacesServiceStatus is OK, and adds a marker // using the place ID and location from the PlacesService. function callback(results, status) { if (status == google.maps.places.PlacesServiceStatus.OK) { var marker = new google.maps.Marker({ map: map, place: { placeId: results[0].place_id, location: results[0].geometry.location } }); } } google.maps.event.addDomListener(window, 'load', initialize);
Place Photos
Use the Place Photo feature to add high quality photographic content to your site. The Photo service gives you access to the millions of photos stored in the Places and Google+ Local database. When you get place information using a Place Details request, photo references will be returned for relevant photographic content. The Nearby Search and Text Search requests also return a single photo reference per place, when relevant. Using the Photo service you can then access the referenced photos and resize the image to the optimal size for your application.
An array of PlacePhoto objects will be returned as part of the PlaceResult object for any getDetails() , textSearch() or nearbySearch() request made against a PlacesService .
Note: The number of photos returned varies by request.
- A Nearby Search or a Text Search will return at most one
PlacePhotoobject. - A Details request will return up to ten
PlacePhotoobjects.
You can request the URL for the associated image by calling the PlacePhoto.getUrl() method, and passing a valid PhotoOptions object. Use the PhotoOptions object to specify the maximum height and width of the image. If you specify a value for both maxHeight and a maxWidth , the photo service will resize the image to the smaller of the two sizes, while maintaining the original aspect ratio.
The following code snippet accepts a place object, and adds a marker to the map if a photo exists. The default marker image is replaced by a small version of the photo.
function createPhotoMarker(place) { var photos = place.photos; if (!photos) { return; } var marker = new google.maps.Marker({ map: map, position: place.geometry.location, title: place.name, icon: photos[0].getUrl({maxWidth: 35, maxHeight: 35}) }); }
Photos returned by the Photo service are sourced from a variety of locations, including business owners and user contributed photos. In most cases, these photos can be used without attribution, or will have the required attribution included as a part of the image. However, if the returned photo element includes a value in the html_attributions field, you must include the additional attribution in your application wherever you display the image.