Bonjour,

Sur une page de mon site j'ai une carte google maps qui affiche des arrêts de bus, avant d'afficher les arrêts l'utilisateur doit choisir dans une liste sa commune de résidence et l'établissement scolaire, quand il valide cela lui affiche les arrêts correspondant sur une carte google maps. Cela fonctionne avec la plupart des communes sauf une ou j'ai un too much recursion

Voici le code javascript, qui fait une requête ajax pour aller chercher les arrêts de bus :

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
jQuery( document ).ready(function() {
  var markersonmap = [];
  var bounds = new google.maps.LatLngBounds();
  var myLatLng = {lat: 45.76161017250319, lng: 6.284972881353269};
 
        var map_ts = new google.maps.Map(document.getElementById('map_transports_scolaires'), {
          zoom: 12,
          center: myLatLng
        });
 
 
  jQuery('#btn_ts_distance').click(function() {
    var liste_communes_residence = jQuery('#liste_communes_residence').val();
    var etablissement = jQuery('#liste_etablissement').val();
 
    if (etablissement=='-1' && liste_communes_residence!='-1') {
      showErrorTS('Vous devez sélectionner un établissement dans la liste pour obtenir les arrêts de bus');
    }else if(liste_communes_residence=='-1' && etablissement!='-1'){
      showErrorTS('Vous devez sélectionner une commune de résidence dans la liste pour obtenir les arrêts de bus');
    }else if(liste_communes_residence=='-1' && etablissement=='-1'){
      showErrorTS('Vous devez sélectionner une commune de résidence ainsi qu\'un établissement dans la liste pour obtenir les arrêts de bus');
    }else{
      // On efface les markers déjà présents sur la carte si il y en a
       if ( markersonmap!=undefined && markersonmap.length != 0 ) {
        for(i=0; i<markersonmap.length; i++  ) {							
    		  markersonmap[i].setMap(null);
    		}
    		markersonmap.length = 0;
    	}
 
 
 
      jQuery.ajax({
        url: 'index.php?option=com_transportsscolaires&view=distance&format=json',
        type: "GET",
        dataType: "json",
        data: 'commune='+liste_communes_residence+'&etablissement='+etablissement
      }).done(function(data) {
 
 
      jQuery.each(data, function(index, val){ 
           var infowindow = new google.maps.InfoWindow({
          content: '<div><h3>'+val.nom_poi+'</h3><img title="'+val.nom_poi+'" alt="'+val.nom_poi+'" src="https://example.com/media/kml/photos_arrets_ts/'+val.nom_image+'" /><br /><h4>Horaires :</h4> Départ : '+val.heure_depart+' </div>'
        });
 
	          marker = new google.maps.Marker({
          position: new google.maps.LatLng(parseFloat(val.point_y),parseFloat(val.point_x)),
          map: map_ts,
          icon: 'https://example.com/media/kml/bus.png',
          title: val.nom_poi
        });  
 
 
        marker.addListener('click', function() {
          infowindow.open(map_ts, marker);
        }); 
 
        bounds.extend(marker.position);
 
        markersonmap.push(marker);                               
       });
 
       // Permet de centrer l'affichage sur les markers présents sur la carte
       map_ts.fitBounds(bounds);                                                  
 
 
      });
    }
  });
 
});
Ce qui est retourné par la requête ajax est un array contenant plusieurs objets :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Array [ Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, 20 de plus… ]
Auriez-vous une idée pour corriger le souci ?

Merci d'avance