تتيح لك ميزة "مراجعات الأماكن" إضافة مراجعات وتقييمات المستخدمين إلى صفحات الويب. توضّح هذه الصفحة
الاختلافات بين مراجعات الأماكن المستخدَمة في الفئة Place(الجديدة) وPlacesService (القديمة)، وتقدّم بعض مقتطفات الرموز للمقارنة.
PlacesService(القديمة) تعرض مصفوفة منPlaceReviewمثيلات كجزء من العن4/} لأي طلبgetDetails()إذا تم تحديد الحقلreviewsفي الطلب.PlaceResultPlace(الجديدة) تعرض مصفوفة من مثيلاتReviewكجزء من طلبfetchFields()إذا تم تحديد الحقلreviewsفي الطلب.
يسرد الجدول التالي بعض الاختلافات الرئيسية في استخدام مراجعات الأماكن بين الفئة Place وPlacesService:
PlacesService (القديمة) |
Place (الجديدة) |
|---|---|
PlaceReview واجهة |
Review فئة |
تتطلّب الطرق استخدام ردّ، لمعالجة عنصر النتائج والردّ
google.maps.places.PlacesServiceStatus. |
تستخدم Promises وتعمل بشكل غير متزامن. |
تتطلّب الطرق التحقّق من 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,
});
}
});
فئة Place (الجديدة)
يطلب المقتطف التالي تفاصيل المكان، بما في ذلك المراجعات، باستخدام طريقة fetchFields()
، ويعرض نتيجة المراجعة الأولى
في نافذة معلومات.
// 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,
});