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