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 :

[Google Earth] Récupérer value pour fonction


Sujet :

APIs Google

  1. #1
    Membre du Club
    Homme Profil pro
    Géomaticien
    Inscrit en
    Septembre 2012
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Géomaticien

    Informations forums :
    Inscription : Septembre 2012
    Messages : 103
    Points : 66
    Points
    66
    Par défaut [Google Earth] Récupérer value pour fonction
    Bonjour,

    J'ai une liste déroulante en HTML. Je souhaiterai récupérer les value des options de la liste, pour modifier la fonction JavaScript associer à la liste déroulante.

    J'ai essayé les méthodes de récupération getElementById ou SelectedIndex, mais sans succès ! J'ai essayé de mettre le terme "value" directement dans la fonction... Sans succès ! J'ai essayé aussi d'autres choses, comme lui passer des paramètres, mettre des conditions If... sans-su-ccès !

    Je commence à ne plus y voir bien clair, par le passé sur des fonctions plus simples, je faisais ça avec getElementById...

    Voici ma liste déroulante :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <FORM>
        <SELECT name="liste_zoom" Id="liste_zoom" onchange="zoom()">
            <OPTION value="flamanville" >EPR de Flamanville</option>
            <OPTION value="gravelines" >gravelines</option>
            <OPTION value="hague" >hague</option>
            <OPTION value="bure" >bure</option>
        </SELECT>
    </FORM>

    Et voici ma fonction :

    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
    function zoom()
    {
      var valeur = document.getElementById("liste_zoom").value;
     
      var flamanville = ge.createLookAt('');
      flamanville.set( 49.53641946916724,  -1.881880760192871, 0, ge.ALTITUDE_RELATIVE_TO_GROUND, 
             -750, 50, 1500); //180, 60, 500);
     
      var gravelines = ge.createLookAt('');
      gravelines.set( 51.01345766180378,  2.13559627532959, 0, ge.ALTITUDE_RELATIVE_TO_GROUND, 
             -750, 50, 1000); //180, 60, 500);
     
      var hague = ge.createLookAt('');
      hague.set( 49.67841748300393,  -1.87816858291626, 0, ge.ALTITUDE_RELATIVE_TO_GROUND, 
             -750, 50, 2000); //180, 60, 500);
     
      var bure = ge.createLookAt('');
      bure.set( 48.48443936913144,  5.355990529060364, 0, ge.ALTITUDE_RELATIVE_TO_GROUND, 
             -750, 50, 1500); //180, 60, 500);
     
      	ge.getView().setAbstractView(valeur);
    }
    Merci d'avance de vos conseils !!!

  2. #2
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    bonsoir,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <SELECT name="liste_zoom" Id="liste_zoom" onchange="zoom()">
    l'attribut est id (tout en minuscules) pas "Id"

    Par contre, c'est quoi l'objet "ge" dans ton code javascript ?

    En passant, mets le contenu des balises en minuscules également :
    <select>
    <option>
    <form>

  3. #3
    Membre du Club
    Homme Profil pro
    Géomaticien
    Inscrit en
    Septembre 2012
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Géomaticien

    Informations forums :
    Inscription : Septembre 2012
    Messages : 103
    Points : 66
    Points
    66
    Par défaut
    Ok merci pour le "Id".
    J'ai aussi bien mis ma liste en minuscule.

    Malheureusement ça ne change rien ! Malgré que j'aie essayé plusieurs méthodes après ces changements...

    L'objet "ge" c'est Google Earth. J'utilise l'API cartographique de Google, sur cette page de test (liste déroulante ligne 93):

    http://cartoperso.fr/nucleaire/nucle...ce/index2.html

    Avec le fichier js nommé "ge2.js" (fonction "zoom()" ligne 147).

    En fait, je souhaite migrer les fonctions de zoom "Aller à..." dans la liste déroulante.

    J'ai l'impression que je m'y prends mal depuis le départ, il y a sans doute des arguments à passer, peut-être une condition If à ajouter dans ma fonction. Je remarque aussi que les variables de ma fonction ont le même nom que des values de la liste déroulante.
    Ça me paraissait logique au début mais finalement...

    Si quelqu'un a le temps de jeter un coup d'œil !!! Merci !!!

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 963
    Points : 44 141
    Points
    44 141
    Par défaut
    Bonjour,
    d'après la documentation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ge.getView().setAbstractView(valeur);
    valeur doit être de la forme KmlAbstractView, donc il te faut reprendre cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var valeur = document.getElementById("liste_zoom").value;
    .

  5. #5
    Membre du Club
    Homme Profil pro
    Géomaticien
    Inscrit en
    Septembre 2012
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Géomaticien

    Informations forums :
    Inscription : Septembre 2012
    Messages : 103
    Points : 66
    Points
    66
    Par défaut
    Ok merci mais pouvez-vous préciser ? je ne comprends pas trop :

    valeur doit être de la forme KmlAbstractView
    D'autant que la fonction que je souhaite déclencher n'utilise pas de KML.

    PS : En mettant autant de fonctions que nécessaire, et en les passant en "onclick" dans chacune des options de la liste déroulante, ça marche mais que sur Mozilla, pas sur Chrome...

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 963
    Points : 44 141
    Points
    44 141
    Par défaut
    je ne comprends pas trop :
    c'est vrai que cela n'est pas très clair.

    Ce qui se passe c'est que tu récupères une String avec la value et tu t'en sers comme nom de variable ce que tu ne peux pas faire en direct.

    Je te soumet un petit exemple de ce que tu peux faire pour te servir de la valeur pour pointer sur une variable de même nom.
    Code html : 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
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    <meta charset="UTF-8">
    <title>Nom de variable</title>
    </head>
    <body>
      <select id="le_select" onclick="test()">
        <option value="un">Un</option>
        <option value="deux">Deux</option>
        <option value="trois">Trois</option>
      </select>
    <script>
    // variables globales pas top du tout
    var un    = "_un_";
    var deux  = "_deux_";
    var trois = "_trois_";
     
    function test(){
      // création objet local
      var data = {
        'un'    : 'data_1',
        'deux'  : 'data_2',
        'trois' : 'data_3'
      };
      // surcharge de la fonction
      test.un    = 'fct.un';
      test.deux  = 'fct.deux';
      test.trois = 'fct.trois';
     
      var val = document.getElementById('le_select').value;
      alert( 'val =' +val +'\ndata[val] =' +data[val] +'\nwindow[val] =' +window[val] +'\ntest[val] = ' +test[val]);
    }
    </script>
    </body>
    </html>

    Il existe surement d'autre d'autres façons de faire, dans ton cas, par exemple, le switch serait une solution.

Discussions similaires

  1. Récupérer value de chaque checkbox pour fonction JavaScript
    Par Florian_mbf dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 17/05/2013, 13h48
  2. fichier kml à partir d'Excel pour Google Earth
    Par lucy22 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 15/02/2013, 15h25
  3. api google earth et google map à l'aide pour intégrer de nouvelles fonctions
    Par didier6526 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 04/03/2009, 11h51
  4. Réponses: 6
    Dernier message: 15/06/2006, 14h07

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