banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 07 May 2014 14:12

drouchi
Participant occasionnel
Date d'inscription: 16 Jun 2010
Messages: 32

Bouton "Display All" openlayer

Bonjour a tous,

J'ai une carte sous openlayer avec une petite dizaine de couche vector (overlay) . J'aimerai creer un bouton qui me permettrai d'afficher toutes mes couches (overlay). Apres de longue recherche je reste toujours bloquer. Dois-je utiliser setVisibility? de quel façon?

Cordialement

Drouchi

Hors ligne

 

#2 Thu 08 May 2014 15:11

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: Bouton "Display All" openlayer

Bonjour,

Il te faut faire une boucle sur les couches disponible, tester si elles sont en overlay et si oui définir leur visibilité à true avec la méthode que tu as citée.

Si dans ton code tu as la possibilité de créer une variable qui contient les objets de tes couches (genre var listLayersOverlays[] = monObjet) , ca peut être plus simple et plus rapide.

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#3 Thu 08 May 2014 15:23

drouchi
Participant occasionnel
Date d'inscription: 16 Jun 2010
Messages: 32

Re: Bouton "Display All" openlayer

Bonjour,

Merci Yves!
En fait, je viens juste de reussir a le faire sans avoir vu ton post smile. Je ne sais pas trop si mon code est beau car je l'ai construit en copiant de morceau de ci et la, mais il fonctionne!

Code:

function  setAllOverlaysVisibility(map) {
    var layers = map.layers;
    for(var f=0; f<layers.length; f++){    
        var layer = layers[f];
        if (layer.visibility == false && !layer.isBaseLayer){
            layer.setVisibility(true);
        }
        else if(!layer.isBaseLayer && layer.visibility == true && layer.name != "YourLayerName"){
            layer.setVisibility(false);
        }
    }
}

Je voulais savoir si il etait possible de mettre le nom du layer dans un variable car pour certain j'ai quelque chose comme cela: "<img src='img/hotels/icon_hotel_4star.png' id='legend' alt='icon 4 stars hotel'/><span class='legendmap2'>Hotels <img src='img/hotels/star_ws.png' alt='star'/><img src='img/hotels/star_ws.png' alt='star'/><img src='img/hotels/star_ws.png' alt='star'/><img src='img/hotels/star_ws.png' alt='star'/></span>"


En tout cas merci pour tous, j'apprecie vraiment l'aide qui peut etre fourni sur ce forum. Merci a tous!!!

Hors ligne

 

#4 Fri 16 May 2014 11:25

drouchi
Participant occasionnel
Date d'inscription: 16 Jun 2010
Messages: 32

Re: Bouton "Display All" openlayer

Bonjour,

Je viens de réaliser que la fonction que j'ai créé pour afficher tous les overlays ne fonctionne pas tres bien. Voici le probleme:

Lorsque je click sur mon bouton "Display All" j'ai bien toutes les couches qui s'affichent. Mais lorsque je "pan" la carte mes overlays se décalent par rapport a mon baselayer. Si je sélectionne manuellement tout mes overlays il n'y a aucun problem.
Il semblerait donc que ma fonction perturbe le bon fonctionnement.

Quelqu'un aurait il une idée?

Hors ligne

 

Pied de page des forums

Powered by FluxBB