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 :

Récupérer variable dans fonction imbriquée


Sujet :

APIs Google

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 37
    Points : 31
    Points
    31
    Par défaut Récupérer variable dans fonction imbriquée
    Bonjour,

    Voilà je développe actuellement une petite application qui repose sur l'api de google (je viens à peine de me mettre au javascript, histoire de pas me faire fustiger^^)

    J'ai des fonctions qui affichent cartes, itinéraires, streetview... Afin de ne pas redéclarer un objet geocoder, je veux utiliser une fonction qui récupérera directement les coordonnées.

    Voilà mon bout de code :

    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
    function getCoord(adresse)
    {
    	var coord;
     
    	var geo = new google.maps.Geocoder();
    	geo.geocode({'address': adresse}, function(resultats, statut)
    	{
    		if(statut == google.maps.GeocoderStatus.OK)
    		{
    			coord = resultats[0].geometry.location;
                            //return coord;
    		}
    	});
    //return coord;
    }
    Je veux récupérer la valeur de coord. Alors un return à la fin de ma fonction ça ne marche pas (j'imagine parce que coord est dans une autre fonction)). Donc voilà je ne sais pas comment faire ou même si c'est faisable.

    Si quelqu'un pouvait juste me donner un coup de main ce serait sympa

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 144
    Points : 44 941
    Points
    44 941
    Par défaut
    Bonsoir,
    il faut bien comprendre que la fonction appelée dans la méthode geocode est une fonction de type callback, qui s'exécutera donc on ne sait pas précisément quand.

    A lire cette mise au point de Bovino dans ce billet, http://www.developpez.net/forums/d11...onnees-moment/, c'est le même principe.

    Quand tu reçois la réponse il te faut donc traiter celle ci dans la fonction anonyme ou alors appeler une fonction qui va le faire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    geo.geocode({ 'address': adresse},  function (resultats, statut){
        if (statut == google.maps.GeocoderStatus.OK){
          fctTraitement( resultats[0].geometry.location);
        }
      });

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 37
    Points : 31
    Points
    31
    Par défaut
    Ahhh ok, du coup je comprends pourquoi j'avais un undefined avant de récupérer les coordonnées. D'ailleurs merci pour le lien qui est on ne peut plus clair.

    Bon je comprends déjà un peu mieux donc c'est bien impossible de faire ce que je voulais faire ? C'est-à-dire quelque chose comme ceci:

    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
    function getCoord(adresse)
    {
    	var coord;
     
    	var geo = new google.maps.Geocoder();
    	geo.geocode({'address': adresse}, function(resultats, statut)
    	{
    		if(statut == google.maps.GeocoderStatus.OK)
    		{
    			coord = resultats[0].geometry.location;
    			return coord;
    		}
    	});
    	//return coord;
    }
     
    function map()
    {
    	var mesCoord = getCoord(adresse);
            [...]
    }
    Merci beaucoup pour la réponse en tout cas

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 144
    Points : 44 941
    Points
    44 941
    Par défaut
    Bon je comprends déjà un peu mieux donc c'est bien impossible de faire ce que je voulais faire ?
    il existe bien une méthode dont on a parlé sur ce post http://www.developpez.net/forums/d10...n/#post5870601.

    nota:
    la totalité du post doit t'intéresser.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 37
    Points : 31
    Points
    31
    Par défaut
    Merci beaucoup

    C'est très instructif (et un peu compliqué pour moi qui débute en javascript^^). Effectivement ça ressemble à ce que j'aimerais faire. Dès que j'ai réussi à mettre en place une solution je viens la poster

Discussions similaires

  1. Récupérer Variable dans une autre page et les sauvegarder
    Par MarianD dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/01/2007, 22h07
  2. passage de variable dans fonction
    Par nicerico dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 02/12/2006, 00h25
  3. [débutant] récupérer variables dans fichier
    Par guigui32 dans le forum Langage
    Réponses: 2
    Dernier message: 30/11/2006, 12h03
  4. variable dans fonction
    Par pierre371 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 16/05/2006, 15h24
  5. [ActionScript] Récupérer variable dans URL
    Par JohnBlatt dans le forum Flash
    Réponses: 2
    Dernier message: 20/07/2005, 11h21

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