এই পৃষ্ঠাটি Place ক্লাস (নতুন) এবং PlacesService (লিগেসি) তে ব্যবহৃত কাছাকাছি অনুসন্ধানের মধ্যে পার্থক্য ব্যাখ্যা করে এবং তুলনার জন্য কিছু কোড স্নিপেট প্রদান করে।
- লিগ্যাসি
PlacesServiceএকটিnearbySearch()পদ্ধতি রয়েছে, যা আপনাকে কীওয়ার্ড বা টাইপের মাধ্যমে একটি নির্দিষ্ট এলাকার মধ্যে স্থান অনুসন্ধান করতে দেয়। -
Placeক্লাসে একটিsearchNearby()পদ্ধতি রয়েছে যা আপনাকে স্থানের ধরণ অনুসারে একটি নির্দিষ্ট এলাকার মধ্যে স্থান অনুসন্ধান করতে দেয়, আরও নমনীয়তার জন্য স্থানের ডেটা ক্ষেত্র এবং স্থানের ধরণগুলির একটি বর্ধিত নির্বাচন ব্যবহার করে।
নিচের টেবিলে Place ক্লাস এবং PlacesService মধ্যে কাছাকাছি অনুসন্ধান পদ্ধতির কিছু প্রধান পার্থক্য তালিকাভুক্ত করা হয়েছে:
PlacesService (লিগ্যাসি) | Place (নতুন) |
|---|---|
nearbySearch() | searchNearby() |
PlaceSearchRequest | SearchNearbyRequest |
ফলাফল অবজেক্ট এবং google.maps.places.PlacesServiceStatus প্রতিক্রিয়া পরিচালনা করার জন্য একটি কলব্যাক ব্যবহার প্রয়োজন। | প্রতিশ্রুতি ব্যবহার করে এবং অ্যাসিঙ্ক্রোনাসভাবে কাজ করে। |
একটি PlacesServiceStatus চেক প্রয়োজন। | কোনও স্ট্যাটাস চেকের প্রয়োজন নেই, স্ট্যান্ডার্ড এরর হ্যান্ডলিং ব্যবহার করা যেতে পারে। আরও জানুন । |
| শুধুমাত্র অবস্থান পক্ষপাত সমর্থন করে। | অবস্থান পক্ষপাত এবং অবস্থান সীমাবদ্ধতা সমর্থন করে। |
| সমস্ত উপলব্ধ ডেটা ক্ষেত্র ( সমর্থিত ক্ষেত্রগুলির একটি উপসেট ) ফেরত দেয়; নির্দিষ্ট ক্ষেত্রে সীমাবদ্ধ করা যাবে না। | শুধুমাত্র অনুরোধকৃত স্থান তথ্য ক্ষেত্রগুলি ফেরত পাঠায়; Place শ্রেণী ক্ষেত্রগুলির একটি বর্ধিত এবং নিয়মিত আপডেট করা নির্বাচন অফার করে। |
| নির্দিষ্ট ধরণের স্থানের মধ্যে সীমাবদ্ধ। | স্থানের ধরণের একটি বিস্তৃত এবং নিয়মিত আপডেট হওয়া নির্বাচন অ্যাক্সেস করুন। |
| কীওয়ার্ড দিয়ে টেক্সট-ভিত্তিক অনুসন্ধান সমর্থিত। | টেক্সট-ভিত্তিক অনুসন্ধান সমর্থিত নয়, পরিবর্তে টেক্সট অনুসন্ধান (নতুন) ব্যবহার করুন। |
কোড তুলনা
এই বিভাগটি কাছাকাছি অনুসন্ধান পদ্ধতির কোড তুলনা করে প্লেস সার্ভিস এবং প্লেস ক্লাসের মধ্যে পার্থক্যগুলি চিত্রিত করে। কোড স্নিপেটগুলি প্রতিটি সংশ্লিষ্ট API-তে টেক্সট-ভিত্তিক অনুসন্ধান অনুরোধ করার জন্য প্রয়োজনীয় কোড দেখায়।
কাছাকাছি অনুসন্ধান (উত্তরাধিকার)
লিগ্যাসি Nearby Search আপনাকে কীওয়ার্ড বা টাইপ অনুসারে একটি নির্দিষ্ট এলাকার মধ্যে স্থান অনুসন্ধান করতে দেয়। স্থান ডেটা ক্ষেত্র ব্যবহার করে অনুসন্ধান সীমাবদ্ধ করার কোনও উপায় নেই, যাতে প্রতিটি অনুরোধের সাথে উপলব্ধ সমস্ত ক্ষেত্র ফেরত পাঠানো হয়। নিম্নলিখিত স্নিপেটে অস্ট্রেলিয়ার সিডনির রেস্তোরাঁ সম্পর্কে তথ্য ফেরত দেওয়ার জন্য 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এর অবস্থা পরীক্ষা করার কোন প্রয়োজন নেই; এর পরিবর্তে স্ট্যান্ডার্ড ত্রুটি পরিচালনা ব্যবহার করা যেতে পারে।
নিচের কোড স্নিপেটটি এমন একটি ফাংশন দেখায় যা রেস্তোরাঁর জন্য Nearby Search অনুরোধ করে। এই উদাহরণে 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");
}
}
আরও জানুন
- সম্পূর্ণ উদাহরণ কোডটি দেখুন
- কাছাকাছি অনুসন্ধান (নতুন) এর ডকুমেন্টেশন দেখুন।
-
searchNearby()রেফারেন্সটি দেখুন।