Bonjour
Je viens à vous car j'ai un phénomène inexpliqué. Pour résumer mon problème, j'ai un calcul qui se lance via l'API de Google Maps, qui fait son calcul et lance une fonction une fois le résultat calculé. La fonction lancée modifie des valeurs de mon tableau, et j'aimerai avoir ces valeurs.
Le code est ici
Je lance simplement cette fonction en faisant un alert() du résultat.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 function getLatLong(address) { // J'initialise les éléments du tableau document.getElementById("lat").innerHTML = ""; document.getElementById("lng").innerHTML = ""; if (geocoder) { geocoder.setBaseCountryCode('fr'); geocoder.getLatLng( address, // Ici la fonction retournée une fois la latitude/longitude calculée function(point) { if (!point) { document.getElementById("lat").innerHTML = "null"; document.getElementById("lng").innerHTML = "null"; } else { document.getElementById("lat").innerHTML = point.lat().toFixed(7); document.getElementById("lng").innerHTML = point.lng().toFixed(7); alert("Retour de Google : " + document.getElementById("lat").innerHTML); } } ); } // Un count pour éviter que la fonction tourne en boucle (temporaire, pour les tests) count = 0; while ((document.getElementById("lat").innerHTML == "") && (count < 10000)) { count++; } alert("Fin du while : '" + (document.getElementById("lat").innerHTML) + "'"); return "Return final : '" + (document.getElementById("lat").innerHTML) + "' (" + count + ")"; }
Mon problème est le suivant. J'ai 3 alerts :
1) L'alerte "Retour de Google", qui affiche la bonne latitude
2) L'alert "Fin du while", qui retourne ""
3) L'alert du retour de fonction, qui retourne la bonne latitude.
Si je supprime la ligne "Fin du while", j'obtiens 2 alerts :
1) L'alert "Retour de Google", qui affiche la bonne latitude
2) L'alert du retour de fonction, qui retourne "".
Avez vous une idée d'où vient le problème ?
Pierre
Partager