Bonjour, je viens vous exposer mon problème qui me tourmente depuis un bon moment.
j'ai un fichier .html qui contient une série d'instruction me permettant d'afficher des marqueurs sur une carte (google map).
Je récupère les informations relatives à chaque marqueurs (latitude,longitude) à partir d'un fichier doc_ville.xml de la forme :
J'arrive à afficher les marqueurs sur la carte mais mon problème est que je n'arrive pas a correctement ajouter une 'infobulle' sur les marqueurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <ville> <coordonnee_x>..</coord_x> <coordonnee_y>.. <pays>.. <nom_ville>.. </ville> <ville> ...
Je voudrais que s'affiche le pays et le nom de la ville liés au marqueur sur lequel on clic, avec une bulle qui s'affiche sur le marqueur sélectionné.
Or quand on clic sur un marqueur ,c'est toujours sur le même marqueur que la bulle s'ouvre avec comme nom de ville et de pays les dernières informations récupérées de mon fichier .xml (et non pas celle du marqueur cliqué) Pourquoi et comment faire pour remédier à cela?
voici mon code pour placer les marqueurs et je crois bien ajouter un événement quand on clic sur chaque marqueur.
*******
j'espère que mon problème est assez clair et que je ne me suis pas trompé de forum... Merci d'avance à tous ceux qui prendront le temps de lire mon problème et la bonté de me répondre.
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
28
29
30
31
32
33
34
35 xhttp.open("GET","doc_ville.xml",false); xhttp.send(""); xmlDoc=xhttp.responseXML; var x=xmlDoc.getElementsByTagName("ville"); for (var i=0;i<x.length;i++){ var lat=parseFloat(x[i].getElementsByTagName("coordonnee_x")[0].childNodes[0].nodeValue); var lng=parseFloat(x[i].getElementsByTagName("coordonnee_y")[0].childNodes[0].nodeValue); var pays=(x[i].getElementsByTagName("pays")[0].childNodes[0].nodeValue); var city=(x[i].getElementsByTagName("nom_ville")[0].childNodes[0].nodeValue); var point = new GPoint(lng,lat); var marqueur = new GMarker(point); GEvent.addListener(marqueur, "click", function() { /* ... Si L'événement "click" est déclenché, la variable "texteInfobulle" contient les informations devant figurer dans l'info-bulle (city et pays) ... */ var texteInfobulle = "<table>" + "<b>Ville</b> : "+ city +"<br /><b>Pays</b> : "+pays+ "<tr><td>nature du vol:</td> <td><select id='type'>" + "<option value='depart' SELECTED>au départ de </option>" + "<option value='arrivee'>arrivée à </option>" + "</select> </td></tr>" + "<tr><td><input type='button' value='créer un vol' /></td></tr>"; marqueur.openInfoWindowHtml(texteInfobulle); }); map.addOverlay(marqueur); } }
Bonne soirée à tous






Répondre avec citation
Partager