এই পৃষ্ঠাটি Place
ক্লাস (নতুন) এবং PlacesService
(লেগেসি) এ ব্যবহৃত কাছাকাছি অনুসন্ধানের মধ্যে পার্থক্য ব্যাখ্যা করে এবং তুলনা করার জন্য কিছু কোড স্নিপেট প্রদান করে।
- Legacy
PlacesService
একটিnearbySearch()
পদ্ধতি রয়েছে, যা আপনাকে কীওয়ার্ড বা টাইপ দ্বারা একটি নির্দিষ্ট এলাকার মধ্যে স্থানগুলি অনুসন্ধান করতে দেয়৷ -
Place
ক্লাসে একটিsearchNearby()
পদ্ধতি রয়েছে যা আপনাকে স্থানের ধরন অনুসারে একটি নির্দিষ্ট এলাকার মধ্যে স্থানগুলি অনুসন্ধান করতে দেয়, বৃহত্তর নমনীয়তার জন্য স্থানের ডেটা ক্ষেত্র এবং স্থানের প্রকারগুলির একটি বর্ধিত নির্বাচন ব্যবহার করে।
নিচের সারণীতে Place
শ্রেণী এবং PlacesService
মধ্যে কাছাকাছি অনুসন্ধান পদ্ধতির কিছু প্রধান পার্থক্য তালিকাভুক্ত করা হয়েছে:
PlacesService (উত্তরাধিকার) | Place (নতুন) |
---|---|
nearbySearch() | searchNearby() |
PlaceSearchRequest | SearchNearbyRequest |
ফলাফল বস্তু এবং google.maps.places.PlacesServiceStatus প্রতিক্রিয়া পরিচালনা করতে একটি কলব্যাক ব্যবহারের প্রয়োজন৷ | প্রতিশ্রুতি ব্যবহার করে, এবং অ্যাসিঙ্ক্রোনাসভাবে কাজ করে। |
একটি PlacesServiceStatus চেক প্রয়োজন। | কোন প্রয়োজনীয় স্থিতি পরীক্ষা, মান ত্রুটি হ্যান্ডলিং ব্যবহার করতে পারেন. |
শুধুমাত্র অবস্থান পক্ষপাত সমর্থন করে। | অবস্থান পক্ষপাত এবং অবস্থান সীমাবদ্ধতা সমর্থন করে। |
সমস্ত উপলব্ধ ডেটা ক্ষেত্র ফেরত দেয় ( সমর্থিত ক্ষেত্রের একটি উপসেট ); নির্দিষ্ট ক্ষেত্রে সীমাবদ্ধ করা যাবে না। | শুধুমাত্র অনুরোধ করা স্থানের ডেটা ক্ষেত্র ফেরত দেয়; Place ক্লাস ক্ষেত্রগুলির একটি প্রসারিত এবং নিয়মিত আপডেট করা নির্বাচন অফার করে। |
স্থান প্রকারের একটি নির্দিষ্ট সেটে সীমাবদ্ধ। | স্থানের ধরনগুলির একটি প্রসারিত এবং নিয়মিত আপডেট হওয়া নির্বাচন অ্যাক্সেস করুন৷ |
সমর্থিত পাঠ্য-ভিত্তিক অনুসন্ধান কীওয়ার্ড সহ। | পাঠ্য-ভিত্তিক অনুসন্ধান সমর্থিত নয়, পরিবর্তে পাঠ্য অনুসন্ধান (নতুন) ব্যবহার করুন। |
কোড তুলনা
এই বিভাগটি স্থান পরিষেবা এবং স্থান শ্রেণীর মধ্যে পার্থক্য চিত্রিত করতে কাছাকাছি অনুসন্ধান পদ্ধতির কোড তুলনা করে। কোড স্নিপেট একটি পাঠ্য-ভিত্তিক অনুসন্ধান অনুরোধ করতে প্রতিটি সংশ্লিষ্ট API-এ প্রয়োজনীয় কোড দেখায়।
কাছাকাছি অনুসন্ধান (উত্তরাধিকার)
লিগ্যাসি কাছাকাছি অনুসন্ধান আপনাকে কীওয়ার্ড বা টাইপ দ্বারা একটি নির্দিষ্ট এলাকার মধ্যে স্থানগুলি অনুসন্ধান করতে দেয়৷ স্থান ডেটা ক্ষেত্রগুলি ব্যবহার করে অনুসন্ধানগুলিকে সীমাবদ্ধ করার কোনও উপায় নেই, যাতে প্রতিটি অনুরোধের সাথে সমস্ত উপলব্ধ ক্ষেত্র ফেরত দেওয়া হয়। নিম্নলিখিত স্নিপেটটি অস্ট্রেলিয়ার সিডনিতে রেস্তোরাঁ সম্পর্কে তথ্য ফেরত দিতে nearbySearch()
কল করা দেখায়। অনুরোধটি সিঙ্ক্রোনাস, একটি কলব্যাক ব্যবহার করে এবং PlacesServiceStatus
এ একটি প্রয়োজনীয় শর্তসাপেক্ষ চেক অন্তর্ভুক্ত করে।
let map;
let service;
function initMap() {
const sydney = new google.maps.LatLng(-33.867, 151.195);
map = new google.maps.Map(document.getElementById("map"), {
center: sydney,
zoom: 15,
});
const request = {
location: sydney,
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]);
}
}
}
// Helper function to create markers.
function createMarker(place) {
if (!place.geometry || !place.geometry.location) return;
const marker = new google.maps.Marker({
map,
position: place.geometry.location,
title: place.name,
});
}
আরও জানুন
কাছাকাছি অনুসন্ধান (নতুন)
কাছাকাছি অনুসন্ধানের নতুন সংস্করণটি তার পূর্বসূরির উপর নিম্নলিখিত উপায়ে উন্নতি করে:
- কোন স্থানের ডেটা ক্ষেত্রগুলি ফেরত দিতে হবে তা নির্দিষ্ট করার ক্ষমতা।
- প্রতিশ্রুতির ব্যবহার যা অ্যাসিঙ্ক্রোনাস অপারেশন সক্ষম করে।
-
PlacesService
এর স্থিতি পরীক্ষা করার দরকার নেই; পরিবর্তে স্ট্যান্ডার্ড ত্রুটি হ্যান্ডলিং ব্যবহার করা যেতে পারে।
নিম্নলিখিত কোড স্নিপেট একটি ফাংশন দেখায় যা রেস্টুরেন্টের জন্য কাছাকাছি অনুসন্ধানের অনুরোধ করে। এই উদাহরণে rankPreference
অপশন ব্যবহার করে সার্চের ফলাফলকে জনপ্রিয়তার ভিত্তিতে র্যাঙ্ক করা দেখানো হয়েছে (পূর্ববর্তী সংস্করণে rankBy
বিকল্প ব্যবহার করে র্যাঙ্কিং নির্দিষ্ট করা হয়েছে)। যেহেতু searchNearby()
পদ্ধতিটি await
অপারেটর ব্যবহার করে এটি শুধুমাত্র একটি async
ফাংশনের মধ্যে ব্যবহার করা যেতে পারে।
async function nearbySearch() {
// Restrict within the map viewport.
let center = new google.maps.LatLng(52.369358, 4.889258);
const request = {
// Required parameters.
fields: ["displayName", "location", "businessStatus"],
locationRestriction: {
center: center,
radius: 500,
},
// Optional parameters.
includedPrimaryTypes: ["restaurant"],
maxResultCount: 5,
rankPreference: google.maps.places.SearchNearbyRankPreference.POPULARITY,
language: "en-US",
region: "us",
};
const { places } = await google.maps.places.Place.searchNearby(request);
if (places.length) {
console.log(places);
// Create a new bounds, which will be extended with each result.
const bounds = new google.maps.LatLngBounds();
// Loop through and get all the results.
places.forEach((place) => {
const markerView = new google.maps.marker.AdvancedMarkerElement({
map,
position: place.location,
title: place.displayName,
});
bounds.extend(place.location);
console.log(place);
});
map.fitBounds(bounds);
} else {
console.log("No results");
}
}