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

IGN API Géoportail Discussion :

Utilisation de SetVisibility ?


Sujet :

IGN API Géoportail

  1. #1
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 320
    Points : 286
    Points
    286
    Par défaut Utilisation de SetVisibility ?
    Bonjour les amis,

    je suis dans une impasse : je n'arrive pas à utiliser SetVisibility pour afficher ou non dynamiquement une couche.

    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
    function initMap() {
    	viewer = iv.getViewer();
    	map = viewer.getMap();
    	
    	viewer.addGeoportalLayers(
    	  ['GEOGRAPHICALGRIDSYSTEMS.MAPS', 'ADMINISTRATIVEUNITS.BOUNDARIES', 'TRANSPORTNETWORKS.RUNWAYS', 'TRANSPORTNETWORKS.ROADS'],
    	  {
    		//'ORTHOIMAGERY.ORTHOPHOTOS:WMSC':{visibility:false, opacity:1},
    		'GEOGRAPHICALGRIDSYSTEMS.MAPS':{visibility:true, opacity:0.5, maxZoomLevel:13},
    		'ADMINISTRATIVEUNITS.BOUNDARIES':{visibility:false, opacity:1},
    		'TRANSPORTNETWORKS.RUNWAYS':{visibility:false, opacity:0.8},
    		'TRANSPORTNETWORKS.ROADS':{visibility:false, opacity:0.8}
    	   }
    	);
    	var WParisCDG_ARR = map.addLayer(
    		'KML',
    		'Paris CDG - Arr.', // Le nom que vous souhaitez donner à la couche et qui apparaitra dans le gestionnaire de couche			
    		'./KML/PARIS_CDG_ARR.kml', // Le chemin d'accès au fichier KML source, sous forme de chemin relatif ou d'URL
    		{
    			visibility:true,
    			opacity:0.7
    		}
    	);
    	var WParisCDG_DEP = map.addLayer(
    		'KML',
    		'Paris CDG - Dép.', // Le nom que vous souhaitez donner à la couche et qui apparaitra dans le gestionnaire de couche			
    		'./KML/PARIS_CDG_DEP.kml', // Le chemin d'accès au fichier KML source, sous forme de chemin relatif ou d'URL
    		{
    			visibility:true,
    			opacity:0.7
    		}
    	);
    }
    ...
    function CasesACocher(P_Case) {
    
    	if (document.Form.C_Arr.checked == true)
    	{
    // Affichage des arrivées	
    		WParisCDG_ARR.getVisibility;	
    	}
    	else
    	{
    // Effacement des arrivées		
    	};
    ...
    }
    Il faut qu'en fonction des cases à cocher, les couches sélectionnées apparaissent ou pas.

    Merci d'avance.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 124
    Points : 1 764
    Points
    1 764
    Par défaut
    La variable WParisCDG_ARR est locale à initMap et donc non connue dans CasesACocher

  3. #3
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 320
    Points : 286
    Points
    286
    Par défaut
    Ah oui, mince.
    Comment je peux faire, sans utiliser de variables globales ?

  4. #4
    Expert confirmé
    Homme Profil pro
    Ingénieur cartographe
    Inscrit en
    Avril 2009
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 173
    Points : 4 224
    Points
    4 224
    Par défaut
    Citation Envoyé par Zebulon777 Voir le message
    Comment je peux faire, sans utiliser de variables globales ?
    Une piste ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    viewer.setVariable('WParisCDG_ARR', WParisCDG_ARR);
    ...
    var v= viewer.getVariable('WParisCDG_ARR');
    ...
    et comme iv est une variable globale, le tour est joué

  5. #5
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 320
    Points : 286
    Points
    286
    Par défaut
    Désolé de ne pas avoir donné de nouvelles plus tôt, mais j'étais sur un autre projet.

    Bon, pour revenir à nos (mes ?) moutons, je ne comprends pas bien où je dois mettre ce code ?

    J'ai fait plusieurs essais, sans résultat, je dois surement passer à côté de quelque chose, mais je ne vois pas quoi.

  6. #6
    Membre averti
    Femme Profil pro
    Consultante SIG
    Inscrit en
    Mars 2011
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultante SIG

    Informations forums :
    Inscription : Mars 2011
    Messages : 233
    Points : 356
    Points
    356
    Par défaut
    Pour résoudre rapidement votre problème, vous pouvez rajouter dans la fonction qui gère la visibilité de votre couche ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    iv.setLayerVisibility('Paris CDG - Arr.', false);
    => pas besoin de déclarer de variables

  7. #7
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 320
    Points : 286
    Points
    286
    Par défaut
    Super de chez super.
    Ca fonctionne impec.
    Merci beaucoup.

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

Discussions similaires

  1. Rendre JFrame "invisible" sans utiliser setVisible ou setSize
    Par kattig dans le forum Agents de placement/Fenêtres
    Réponses: 10
    Dernier message: 23/06/2009, 18h26
  2. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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