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 :

Mémoriser coordonnées dans un tableau [Google Maps]


Sujet :

APIs Google

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 46
    Par défaut Mémoriser coordonnées dans un tableau
    Bonjour,

    J'ai un problème avec un tableau dans une page html/javascript:
    Au début, mon tableau ne contient qu'un nom/prénom et une adresse, j'exécute ensuite StockerLatLong(IndexClient) pour stocker les coordonnées (Latitude/Longitude) des clients dans mon tableau. Seulement voilà, le tableau de mémorise rien de ce que je fais.

    Au final, si je fais un alert(TabCli[0][2]); par exemple, pour avoir la latitude de mon 1er client, la fenêtre s'affiche avec "undefinied"...
    De même quand je place un point d'arrêt, je vois qu'à la fin de l'exécution du code, mon tableau est toujours vide (pour les colonne Latitude et Longitude).

    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
    72
    73
    74
    75
    76
    <!DOCTYPE html>
    <html> 
    <head> 
      <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 
      <title>multi-marqueurs</title> 
      <script src="http://maps.google.com/maps/api/js?sensor=false"
              type="text/javascript"></script>
    </head> 
    <body>
      <div id="map" style="width: 600px; height: 550px;"></div>
     
      <script type="text/javascript">
     
     
     
     
     
     
    <!--
    //['Jereme et Catherine Blondel', 49.898729,3.13606, 5],
        TabCli = [
          ['Jean et Christophe','Paris',,],
          ['Laurent et Sabrina', 'Lyon',,],
          ['Gilbert et Marie', 'Busnes',,],
          ['Justine et Alex', 'Lens',,],
          ['Thibaud et Lucie', 'Marseille',,]
        ];
     
    	var geocoder;
    	geocoder = new google.maps.Geocoder();
     
        var map = new google.maps.Map(document.getElementById('map'), {
          zoom: 6,
          center: new google.maps.LatLng(47.4,1.6),
              mapTypeControl: true,
            mapTypeControlOptions: {
          style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
        },
        navigationControl: true,
         navigationControlOptions: {
            style: google.maps.NavigationControlStyle.SMALL,
            position: google.maps.ControlPosition.TOP_RIGHT
        },
            scaleControl: true,
        streetViewControl: false,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        });
     
        var infowindow = new google.maps.InfoWindow();
    	var i;
     
     /*<REMPLISSAGE COORD (Lat + Lng) TABLEAU*/
    	for (i = 0; i < TabCli.length; i++) {  
    		StockerLatLong(i);
    	}
     /*REMPLISSAGE COORD (Lat + Lng) TABLEAU>*/
     
     
    /*Fonctions*/
    	function StockerLatLong(eIndCli) {
           /* Appel au service de geocodage avec l'adresse en paramètre */
           geocoder.geocode( { 'address': TabCli[eIndCli][1]}, function(results, status) {
            /* Si l'adresse a pu être géolocalisée */
            if (status == google.maps.GeocoderStatus.OK) {
             /* Récupération de sa latitude et de sa longitude */
             TabCli[eIndCli][2] = results[0].geometry.location.lat();
            TabCli[eIndCli][3] = results[0].geometry.location.lng();
             } else {
              alert("Le geocodage a échoué: " + status);
             }
            });
    	}
    -->
      </script>
    </body>
    </html>
    Je désespéré, je ne vois vraiment pas pourquoi mon tableau n'agit pas comme attendu.

    PS: Je vous remercie d'avance.

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 212
    Par défaut
    Bonjour,
    il y a une erreur de raisonnement dans ta démarche.
    La fonction associé à ton geocoder.geocode est une fonction asynchrone qui ne renvoie pas de réponse immédiatement donc tu ne peux pas exploiter les résultats tant que la réponse n'as pas été fournies.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 46
    Par défaut
    Ahh, je comprend mieux. Je commençait vraiment à perdre la tête, heureusement que j'ai pu me reposer ce week end (d'autant que quand je plaçais un point d'arrêt, je voyais bien que les coordonnées étaient stockées ! Grâce à ta réponse je suppose que le point d'arrêt laissait le temps à Google d'envoyer les données avant de quitter la boucle).

    Je me demande donc si c'est possible de stocker ces coordonnées dans un tableau. S'il y aurait une sorte de fonction "Attendre réponse de geocoder" qui me permettrait de faire ce que je veux.

    Merci beaucoup en tous cas.

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par ZoomBox
    S'il y aurait une sorte de fonction "Attendre réponse de geocoder" qui me permettrait de faire ce que je veux.
    C'est indiqué dans la doc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    geocode(request:GeocoderRequest, callback:function(Array.<GeocoderResult>, GeocoderStatus))
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 46
    Par défaut
    Parfait !
    Je n'avais pas pensé cette partie de la fonction. Je devrais m'en sortir aisément maintenant.
    Merci à tous les deux pour l'aide.

  6. #6
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2012
    Messages : 39
    Par défaut
    Merci!!!!! Cela va beaucoup m'aider!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupération des coordonnés d'un clique dans un tableau dynamique?
    Par Monaliza-fst dans le forum Windows Forms
    Réponses: 1
    Dernier message: 27/03/2010, 22h49
  2. Réponses: 6
    Dernier message: 28/11/2006, 19h12
  3. Réponses: 9
    Dernier message: 18/08/2006, 09h48
  4. Localiser un point à deux coordonnées dans un tableau de points
    Par giloutho dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 16/08/2006, 17h48
  5. Réponses: 4
    Dernier message: 21/03/2006, 17h38

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