Mit Ortsrezensionen können Sie Nutzerrezensionen und ‑bewertungen auf Ihren Webseiten einfügen. Auf dieser Seite werden die Unterschiede zwischen Ortsrezensionen in der Klasse Place
(neu) und PlacesService
(alt) erläutert. Außerdem finden Sie einige Code-Snippets zum Vergleich.
PlacesService
(Legacy) gibt ein Array vonPlaceReview
-Instanzen als Teil desPlaceResult
-Objekts für jedegetDetails()
-Anfrage zurück, wenn das Feldreviews
in der Anfrage angegeben ist.Place
(neu) gibt ein Array vonReview
-Instanzen als Teil einerfetchFields()
-Anfrage zurück, wenn das Feldreviews
in der Anfrage angegeben ist.
In der folgenden Tabelle sind einige der wichtigsten Unterschiede bei der Verwendung von Ortsrezensionen zwischen der Klasse Place
und PlacesService
aufgeführt:
PlacesService (Legacy) |
Place (Neu) |
---|---|
PlaceReview -Schnittstelle |
Review -Klasse |
Für Methoden ist die Verwendung eines Callbacks erforderlich, um das Ergebnisobjekt und die google.maps.places.PlacesServiceStatus -Antwort zu verarbeiten. |
Verwendet Promises und funktioniert asynchron. |
Für Methoden ist eine PlacesServiceStatus -Prüfung erforderlich. |
Keine Statusprüfung erforderlich, es kann die Standardfehlerbehandlung verwendet werden. Weitere Informationen |
PlacesService muss mit einer Karte oder einem div-Element instanziiert werden. |
Place kann bei Bedarf instanziiert werden, ohne dass ein Verweis auf eine Karte oder ein Seitenelement erforderlich ist. |
PlaceReview gibt Attributionsdaten für die Rezension zurück, die die Felder author_name , author_url und profile_photo_url verwendet. |
Review gibt Attributionsdaten für die Rezension zurück, indem eine
AuthorAttribution -Instanz verwendet wird. |
Codevergleich
In diesem Abschnitt wird Code für Textsuchmethoden verglichen, um die Unterschiede zwischen den Rezensionen für Orte in der alten PlacesService
- und der neueren Place
-Klasse zu veranschaulichen.
Places Service (Legacy)
Im folgenden Snippet wird getDetails()
aufgerufen, um Ortsdetails einschließlich Rezensionen anzufordern. Das erste Rezensionsergebnis wird in einem Infofenster angezeigt.
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-Klasse (neu)
Im folgenden Snippet wird die Methode fetchFields()
aufgerufen, um Ortsdetails einschließlich Rezensionen anzufordern. Das erste Rezensionsergebnis wird in einem Infofenster angezeigt.
// 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,
});