Partage
  • Partager sur Facebook
  • Partager sur Twitter

Google map API Cannot set property 0 of undefined

    15 mars 2018 à 14:27:08

    Bonjours,

    Voilà mon problème, j'essaye d'afficher des polyline en les récupérant via un un tableau d'objet en passant par deux boucles. Quand il s'agit du premier objet, les données sont parfaitements récupérées mais à partir du second tour j'ai le message d'erreur  "Cannot set property '0' of undefined". Pour que cela vous paraîsse plus clair voici mon code :

       
        //Déclaration des variables
        var arrow = [{}];
        var affichePoly = new Array();
        var polylines = new Array([]);
        var linesymbol;
        var offsetTemp;
        var parcours = localStorage.getItem("parcours");
        parcours = JSON.parse(parcours);
        /*Objet où je récupère les coordonées, structure de 
        l'objet: parcours = [{id:0,
                               path : [{latitude:0,
                                        longitude:0}],
                             etc : "..."]}*/
        function initMap() {
            var map = new google.maps.Map(document.getElementById('map'), {
                center: {lat: -34.397, lng: 150.644},
                zoom: 8
            });
    
       
            for(var i in parcours){
                console.log(i);
                for (var j in parcours[i].path){  
                  //c'est à cette ligne là que ça bloque à partir du moment où i=1
                    polylines[i][j]=new google.maps.LatLng(parseFloat(parcours[i].path[j].latitude), parseFloat(parcours[i].path[j].longitude));
                    offsetTemp = (250*j)/parcours[i].length + '%';
                    linesymbol = {
                        path:google.maps.SymbolPath.FORWARD_CLOSED_ARROW,
                    };
                    arrow[i][j] = {
                        icon : linesymbol,
                        offset : offsetTemp
                    };
    
                }
                console.log(polylines);
                affichePoly.push(new google.maps.Polyline({
                    path : polylines[i],
                    icons: arrow[i],
                    geodesic: true,
                    strokeColor: parcours[i].stroke.hexa,
                    strokeOpacity: 1.0,
                    strokeWeight: 3
                }));
                affichePoly[i].setMap(map);
                console.log(affichePoly);
            }
    
    
        }

    J'espère que j'aurais été suffisament clair.

    • Partager sur Facebook
    • Partager sur Twitter
      15 mars 2018 à 16:16:13

      Utilise la méthode push pour ajouter des éléments a un tableau.

      Sa fonctionne sur le 1er elements car tu définie ta variable comme ceci

      polylines = newArray([]);

      Si tu fait :

      polylines = newArray([], []);

      sa fonctionnera pour les 2 premiers poly.

      • Partager sur Facebook
      • Partager sur Twitter

      Google map API Cannot set property 0 of undefined

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown