Bonjour,
Je fait actuellement un système pour récupérer les informations sur des magasins (horaires d'ouverture, lieu ..). J'utilise pour cela l'api google map plus précisément le placeService. Je dois procéder en 2 étapes : récupérer le place_id pour pouvoir utiliser la méthode getDetails() qui demande se dernier en paramètres car c'est cette méthode qui me fourni le plus de détails. Mais voilà je n'arrive pas à sortir les informations pour y avoir accès en dehors des closurs comme ci-dessous :
for (var i = 0; i < locations.length; i++) {
var input = /** @type {HTMLInputElement} */(
locations[i][6] + " " + locations[i][3] + " " + locations[i][4]);
var request = {
location: new google.maps.LatLng(locations[i][1], locations[i][2]),
radius: 50,
query: input
}
var placeid = [],
place_id;
service.textSearch(request, function(results, status){
//console.log(results);
placeid.push([results[i].place_id]);
place_id = results[0].place_id;
});
service.getDetails({placeId: results[i].place_id}, function(place, stat){
console.log(place[i].name);
//console.log(place[i].icon);
//$("#openHours").empty().append('');
});
}
j'aimerai avoir accès au place_id en dehors afin de l'injecter dans la méthode getDetails..
SI vous avez une solutions ou un autre moyen de parenir au résultat ça serai super ;)
Merci d'avance
Bonjour,
ce n'est pas un problème de portée de variable.
Tu raisonnes en synchrone alors qu'ici le fonctionnement est asynchrone...
Effectue le deuxième appel en callback du premier:
service.textSearch(request, function(results, status){
console.log(results);
service.getDetails({placeId: results.place_id}, function(place, stat){
console.log(place);
});
});
En effet ça fonctionne comme ça, j'avai essayé hier et je n'arrivais pas à accéder aux attribus de place, mais en fait si, merci à toi en tout cas antho07 ;)