স্থান পর্যালোচনা আপনাকে আপনার ওয়েব পৃষ্ঠাগুলিতে ব্যবহারকারীর পর্যালোচনা এবং রেটিং যোগ করতে দেয়৷ এই পৃষ্ঠাটি Place
ক্লাস (নতুন) এবং PlacesService
(লেগেসি) এ ব্যবহৃত স্থান পর্যালোচনার মধ্যে পার্থক্য ব্যাখ্যা করে এবং তুলনা করার জন্য কিছু কোড স্নিপেট প্রদান করে।
- যদি অনুরোধে
reviews
ক্ষেত্র নির্দিষ্ট করা থাকে তাহলে যেকোনোgetDetails()
অনুরোধের জন্যPlaceResult
অবজেক্টের অংশ হিসেবেPlacesService
(উত্তরাধিকার)PlaceReview
উদাহরণের একটি অ্যারে প্রদান করে। - একটি
fetchFields()
অনুরোধের অংশ হিসাবেPlace
(নতুন)Review
ইন্সট্যান্সের একটি অ্যারে প্রদান করে যদি অনুরোধেreviews
ক্ষেত্রটি নির্দিষ্ট করা থাকে।
নিম্নলিখিত সারণীতে Place
শ্রেণী এবং PlacesService
মধ্যে স্থান পর্যালোচনার ব্যবহারে কিছু প্রধান পার্থক্য তালিকাভুক্ত করা হয়েছে:
PlacesService (উত্তরাধিকার) | Place (নতুন) |
---|---|
PlaceReview ইন্টারফেস | ক্লাস Review |
ফলাফল বস্তু এবং google.maps.places.PlacesServiceStatus প্রতিক্রিয়া পরিচালনা করতে পদ্ধতিগুলির জন্য একটি কলব্যাক ব্যবহার করা প্রয়োজন৷ | প্রতিশ্রুতি ব্যবহার করে, এবং অ্যাসিঙ্ক্রোনাসভাবে কাজ করে। |
পদ্ধতিগুলির জন্য একটি PlacesServiceStatus চেক প্রয়োজন৷ | কোন প্রয়োজনীয় স্থিতি পরীক্ষা, মান ত্রুটি হ্যান্ডলিং ব্যবহার করতে পারেন. |
PlacesService একটি মানচিত্র বা একটি div উপাদান ব্যবহার করে তাত্ক্ষণিক করা আবশ্যক। | একটি মানচিত্র বা পৃষ্ঠা উপাদানের রেফারেন্স ছাড়াই যেখানে প্রয়োজন সেখানে Place তাত্ক্ষণিক করা যেতে পারে। |
PlaceReview author_name , author_url , এবং profile_photo_url ক্ষেত্রগুলি ব্যবহার করে পর্যালোচনার জন্য অ্যাট্রিবিউশন ডেটা প্রদান করে। | Review একটি AuthorAttribution উদাহরণ ব্যবহার করে পর্যালোচনার জন্য অ্যাট্রিবিউশন ডেটা প্রদান করে। |
কোড তুলনা
এই বিভাগটি লিগ্যাসি PlacesService
এবং নতুন Place
ক্লাসের মধ্যে স্থান পর্যালোচনার মধ্যে পার্থক্য চিত্রিত করতে পাঠ্য অনুসন্ধান পদ্ধতির কোডের তুলনা করে।
স্থান পরিষেবা (উত্তরাধিকার)
নিম্নলিখিত স্নিপেটটি পর্যালোচনা সহ স্থানের বিবরণের জন্য অনুরোধ করতে getDetails()
কল করে এবং একটি তথ্য উইন্ডোতে প্রথম পর্যালোচনা ফলাফল প্রদর্শন করে।
const request = {
placeId: "ChIJpyiwa4Zw44kRBQSGWKv4wgA", // Faneuil Hall Marketplace, Boston, MA
fields: ["name", "formatted_address", "geometry", "reviews"],
};
const service = new google.maps.places.PlacesService(map);
service.getDetails(request, (place, status) => {
if (
status === google.maps.places.PlacesServiceStatus.OK &&
place &&
place.geometry &&
place.geometry.location
) {
// If there are any reviews display the first one.
if (place.reviews && place.reviews.length > 0) {
// Get info for the first review.
let reviewRating = place.reviews[0].rating;
let reviewText = place.reviews[0].text;
let authorName = place.reviews[0].author_name;
let authorUri = place.reviews[0].author_url;
// Format the review using HTML.
contentString =`
<div id="title"><b>${place.name}</b></div>
<div id="address">${place.formatted_address}</div>
<a href="${authorUri}" target="_blank">Author: ${authorName}</a>
<div id="rating">Rating: ${reviewRating} stars</div>
<div id="rating"><p>Review: ${reviewText}</p></div>`;
} else {
contentString = `No reviews were found for ${place.name}`;
}
const infowindow = new google.maps.InfoWindow({
content: contentString,
ariaLabel: place.displayName,
});
// Add a marker.
const marker = new google.maps.Marker({
map,
position: place.geometry.location,
});
// Show the info window.
infowindow.open({
anchor: marker,
map,
});
}
});
ক্লাস করুন (নতুন)
নিম্নলিখিত স্নিপেটটি পর্যালোচনা সহ স্থানের বিশদ বিবরণের জন্য অনুরোধ করতে fetchFields()
পদ্ধতিতে কল করে এবং একটি infowindow-এ প্রথম পর্যালোচনা ফলাফল প্রদর্শন করে।
// Use a place ID to create a new Place instance.
const place = new google.maps.places.Place({
id: "ChIJpyiwa4Zw44kRBQSGWKv4wgA", // Faneuil Hall Marketplace, Boston, MA
});
// Call fetchFields, passing 'reviews' and other needed fields.
await place.fetchFields({
fields: ["displayName", "formattedAddress", "location", "reviews"],
});
// If there are any reviews display the first one.
if (place.reviews && place.reviews.length > 0) {
// Get info for the first review.
let reviewRating = place.reviews[0].rating;
let reviewText = place.reviews[0].text;
let authorName = place.reviews[0].authorAttribution.displayName;
let authorUri = place.reviews[0].authorAttribution.uri;
// Format the review using HTML.
contentString =`
<div id="title"><b>${place.displayName}</b></div>
<div id="address">${place.formattedAddress}</div>
<a href="${authorUri}" target="_blank">Author: ${authorName}</a>
<div id="rating">Rating: ${reviewRating} stars</div>
<div id="rating"><p>Review: ${reviewText}</p></div>`;
} else {
contentString = `No reviews were found for ${place.displayName}`;
}
// Create an infowindow to display the review.
infoWindow = new google.maps.InfoWindow({
content: contentString,
ariaLabel: place.displayName,
});
// Add a marker.
const marker = new google.maps.marker.AdvancedMarkerElement({
map,
position: place.location,
title: place.displayName,
});
// Show the info window.
infoWindow.open({
anchor: marker,
map,
});