Bonjour,
Je poste ici car je suis confronté à un problème que je suis pas sur de comprendre dans le bon sens.
Il s'agit d'une utilisation de l'API Google maps. Un de ses très nombreux objets s'appelle Geocoding et il permet de convertir une adresse donnée en chaine de caractères en coordonnées sur la map.
Le soucis vient du fait que ceci prend du temps, et nottament le temps d'accès aux serveurs Google, et lorsque je l'execute dans une boucle j'ai l'impression qu'il attend pas la fin de la recherche pour continuer à executer le reste du code et à boucler une nouvelle fois..
Pour être plus clair, voici un bout de code que je vais expliquer plus bas :
Code javascript :
function create_marker(point) { marker = new GMarker(point);
GEvent.addListener(marker, "click", function () { map.openInfoWindowHtml(point, "<b>" + names[indice] + "</b><p>" + adress[indice] + "</p>");});
return marker;
} var geocoder = new GClientGeocoder();
for (var indice in id) { geocoder.getLatLng(adress[indice], function (point) { map.addOverlay(create_marker(point));});
}
Cette fonction utilise des tableaux Javascript remplis à partir d'une requete PHP (names, adress, id).
Ce que je veux faire c'est a partir des adresses de la base de donnee creer le nombre de marqueurs sur la carte qui correspondent et placés à l'endroit qu'indique l'adresse.
Jusque là ça marche mais le soucis vient de la variable "indice" qui vaut toujours la derniere valeur du tableau, comme si il continuait la boucle avant même que la connection à Google via Geocoder soit faite.
Je sais pas si c'est très clair..
Si le tableau adress vaut par exemple : "3 avenue truc", "4 rue des fleurs", "5 place des bugs", dans toutes les bulles des marqueurs il y aura ecrit "5 place des bugs", car l'indice vaudra toujours 2.
Dans la doc de l'API sur le site de google ils expliquent que la requête prend du temps mais il en disent pas plus..
En espérant ne pas vous avoir embrouillé, si il y a besoin d'infos supplémentaires j'en rajouterai aucun soucis, pour voir concretement le problème allez voir à cette adresse. Il y a 2 marqueurs correctement placés normalement mais leur texte ne l'est pas.
Merci d'avance !
Partager