IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

APIs Google Discussion :

Erreur too much recursion en plaçant des marqueurs sur une carte


Sujet :

APIs Google

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 213
    Points : 92
    Points
    92
    Par défaut Erreur too much recursion en plaçant des marqueurs sur une carte
    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

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 120
    Points : 44 917
    Points
    44 917
    Par défaut
    Bonjour,
    à priori rien à dire sur le code, essaies quand même de sortir le traitement de la fonction d'appel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    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) {
        // traitement externe
        traiteData(data);
      });

Discussions similaires

  1. Réponses: 11
    Dernier message: 09/07/2013, 09h57
  2. [Google Maps] Affichage des marqueurs sur une carte à partir d'une base de donnée
    Par sigway dans le forum APIs Google
    Réponses: 16
    Dernier message: 22/10/2012, 18h49
  3. Extjs 4 avec Ext.direct erreur "too much recursion"
    Par kenny.kev dans le forum Ext JS / Sencha
    Réponses: 4
    Dernier message: 10/05/2011, 15h52
  4. Faire des effets sur une carte (coloration de zones)
    Par breizhgen dans le forum Webdesign & Ergonomie
    Réponses: 9
    Dernier message: 12/03/2007, 16h07
  5. Réponses: 4
    Dernier message: 18/04/2006, 22h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo