Bonjour,
J'un probl�me de timing et ordre dans mes fonctions. Je pr�cise que je travaille avec l'api de google maps, mais que le probl�me n'est pas li�.
En r�sum� :
- Je g�n�re avec php un fichier XML contenant mes donn�es (donn�es al�atoires)
- Je lis ce fichier avec JS grace a la commande 'downloadUrl' de l'outil de google (http://gmaps-samples-v3.googlecode.c...nk/xmlparsing/)
- Je pr�charge mes icones de markers en les ajoutant au DOM dans un div invisible
- Je charge mes markers sur la carte en chargeant une icone perso (pr�charg�e), que je redimenttionne avec un 'new google.maps.MarkerImage(icone, null, null, null, scale)'
- Tout fonctionne tr�s bien.
Voici mon code (abbregg�) :
Le probl�me est que apparement il n'attend pas que toutes les images soient pr�charg�es avant de placer les markers. De ce fait il ne parvient pas � les redimentionner. En fait il en redimentionne une dizaine, et les suivante sont de taille normale, comme si il n'attendais pas.
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 downloadUrl(searchUrl, function(data) { preloadImg(data); getMarkers(data); }); function preloadImg(data){ markersXml = data.documentElement.getElementsByTagName(\"marker\"); for (var i = 0; i < markersXml.length; i++) { var img = document.createElement('IMG'); img.src = markersXml[i].getAttribute('icon') ; document.getElementById('preloadimages').appendChild(img); } } function getMarkers(data) { markersXml = data.documentElement.getElementsByTagName(\"marker\"); for (var i = 0; i < markersXml.length; i++) { // prépare les markers // assigne l'icone à la bonne taille scale = 0.5 ; icone = new google.maps.MarkerImage(markersXml[i].getAttribute('icon'), null, null, null, scale) ; // attache les markers a la carte } }
Mon probl�me ne vient pas de google maps, car si dans preloadImg(data); je ne charge qu'une image manuellement, cela fonctionne tr�s bien, elle est bien dimentionn�e dans la carte
Donc ma question est de savoir comment je peux etre sur que l'ajout des images dans le DOM est r�elment termin� avant de continuer mon code.
J'avais pens� a un settimeout mais cela ne parait pas tr�s pro...
Toute aide est bienvenue.
Merci, C�dric
Partager