Comme documenté, le PlacesService accepte comme argument soit une carte, soit un nœud où rendre les attributions pour les résultats .
Il suffit donc d'utiliser le nœud (un nœud étant un élément html) au lieu de la carte.
Attention : cacher les attributions viole la politique des lieux (cacher aussi la carte lorsqu'elle est utilisée comme argument, car la carte montrera les attributions).
Ceci peut également vous intéresser : L'API de Google places constitue-t-elle une violation de la COT ?
Exemple : en bref
Si vous utilisez jQuery :
var service = new google.maps.places.PlacesService($('#tag-id').get(0));
Si c'est du simple Javascript :
var service = new google.maps.places.PlacesService(document.createElement('div'));
Alors continuez comme d'habitude avec le reste du code de l'exemple :
service.nearbySearch(request, callback);
Exemple : utilisation des détails retournés
Démonstration en direct de cet exemple sur jsFiddle .
Note : Cet exemple utilise jQuery
.
<ul class="reviews__content" id="reviews__content">
</ul>
<div id="service-helper"></div>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=GOOGLE_API_KEY_HERE&libraries=places&callback=getRelevantGoogleReviews">
</script>
<script type="text/javascript">
window.getRelevantGoogleReviews = function(){
var service = new google.maps.places.PlacesService($('#service-helper').get(0)); // note that it removes the content inside div with tag '#service-helper'
service.getDetails({
placeId: 'ChIJAwEf5VFQqEcRollj8j_kqnE' // get a placeId using https://developers.google.com/places/web-service/place-id
}, function(place, status) {
if (status === google.maps.places.PlacesServiceStatus.OK) {
var resultcontent = '';
for (i=0; i<place.reviews.length; ++i) {
//window.alert('Name:' + place.name + '. ID: ' + place.place_id + '. address: ' + place.formatted_address);
resultcontent += '<li class="reviews__item">'
resultcontent += '<div class="reviews__review-er">' + place.reviews[i].author_name + '</div>';
var reviewDate = new Date(place.reviews[i].time * 1000);
var reviewDateMM = reviewDate.getMonth() + 1;
var reviewDateFormatted = reviewDate.getDate() + '/' + reviewDateMM + '/' + reviewDate.getFullYear();
resultcontent += '<div class="reviews__review-date">' + reviewDateFormatted + '</div>';
resultcontent += '<div class="reviews__review-rating reviews__review-rating--' + place.reviews[i].rating +'"></div>';
if (!!place.reviews[i].text){
resultcontent += '<div class="reviews__review-comment">' + place.reviews[i].text + '</div>';
}
resultcontent += '</li>'
}
$('#reviews__content').append(resultcontent);
}
});
}
</script>