Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

Printemps des cartes 2024

#1 Fri 24 April 2009 11:49

Maxime31
Participant assidu
Date d'inscription: 3 Sep 2008
Messages: 175

[OpenLayers] Grouper les couches ?

Bonjour à tous,

J'aurai voulu savoir comment on faisait pour préciser à OpenLayers que certaines couches appartiennent à un même groupe de couches.

Dans le mapfile, j'ai mis : GROUP "test", pour chaque couche du groupe, mais quand je veux l'afficher avec OpenLayers, les couches sont toujours affichées une par une.

Voila...si quelqu'un a une idée...

Merci.

Dernière modification par Maxime31 (Fri 24 April 2009 11:49)

Hors ligne

 

#2 Fri 24 April 2009 12:01

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

Re: [OpenLayers] Grouper les couches ?

bonjour,

Quel est le code côté OL ? J'utilise cette technique aussi et cela fonctionne.

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 Fri 24 April 2009 12:11

Maxime31
Participant assidu
Date d'inscription: 3 Sep 2008
Messages: 175

Re: [OpenLayers] Grouper les couches ?

Voila le code OL (les deux couches qui devraient être groupées sont Communes et Zones inondables) :

Code:

<html>
    <head>
        <title>Interface Carto SMEAG</title>
        <link rel="stylesheet" type="text/css" href="style.css" />
        <script src="OpenLayers-2.7/lib/OpenLayers.js"></script>
        <script defer="defer" type="text/javascript">
            var map;
            function main(){            
                map= new OpenLayers.Map('map', 
                {maxExtent:new OpenLayers.Bounds(416635, 1729996, 685832, 1934314),
                maxResolution: 'auto',
                units:'meters',
                projection:'EPSG:27593'}); 
                map.addControl(new OpenLayers.Control.Scale());
                map.addControl(new OpenLayers.Control.ZoomToMaxExtent());
                map.addControl(new OpenLayers.Control.MousePosition());
                map.addControl(new OpenLayers.Control.LayerSwitcher());
                map.addControl(new OpenLayers.Control.EditingToolbar());
                
                
                var wms4 = new OpenLayers.Layer.WMS("Communes", 
                   "http://localhost/cgi-bin/mapserv.exe?map=c:/ms4w/Apache/htdocs/projet_test/natura.map", {layers: "communes", transparent:true});
                map.addLayer(wms4);
                var wms5 = new OpenLayers.Layer.WMS("Zones inondables", 
                   "http://localhost/cgi-bin/mapserv.exe?map=c:/ms4w/Apache/htdocs/projet_test/natura.map", {layers: "zi", transparent:true}, {opacity:0.3});
                map.addLayer(wms5);
                
var wms = new OpenLayers.Layer.WMS("Périmètre original", 
                   "http://localhost/cgi-bin/mapserv.exe?map=c:/ms4w/Apache/htdocs/projet_test/natura.map", {layers: "perimetre_original", transparent:true});
                map.addLayer(wms);
                
                
                var wms6 = new OpenLayers.Layer.WMS("Scan 25", 
                   "http://localhost/cgi-bin/mapserv.exe?map=c:/ms4w/Apache/htdocs/projet_test/natura.map", {layers: "scan25"});
                map.addLayer(wms6);
                
                map.zoomToMaxExtent();
            }
        </script> 
    </head>
   
<body onload="main();">

<table width="1000" border="4">
    <tr>
        <td  colspan="2" align="center" bgcolor="red"><h1>Interface Carto SMEAG</h1></td>
    </tr>
    <tr>
        <td align="center" bgcolor="blue">Menu</td>
        <td align="center"><div style="width:800px; height:500px" id="map"></div></td>
    </tr>
    <tr>
        <td align="center" colspan="2" bgcolor="yellow">Sources</td>
    </tr>
</table>

</body>
</html>

Hors ligne

 

#4 Fri 24 April 2009 12:13

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

Re: [OpenLayers] Grouper les couches ?

Maxime,

Si tu n'appelles pas ta couche "test" elle n'apparaîtra pas wink

Code:

 var wms4 = new OpenLayers.Layer.WMS("Communes", 
                   "http://localhost/cgi-bin/mapserv.exe?map=c:/ms4w/Apache/htdocs/projet_test/natura.map", {layers: "test", transparent:true});
                map.addLayer(wms4);

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

 

#5 Fri 24 April 2009 12:23

Maxime31
Participant assidu
Date d'inscription: 3 Sep 2008
Messages: 175

Re: [OpenLayers] Grouper les couches ?

Ok effectivement ca marche !

Mais en fait, ce n'est pas exactement ce que je veux. En fait, je voudrais pouvoir cette possibilité de masquer ou afficher les deux couches en même temps mais aussi pouvoir quand même choisir d'en afficher l'une sans l'autre.

Quelquechose dans ce style :

v test
   v communes
   v zi

(v correspondant à une case cochée)

ou encore comme cela :

v test
      communes
   v zi


En fait, c'est plus une question de présentation.

Est-ce possible ?

Dernière modification par Maxime31 (Fri 24 April 2009 12:24)

Hors ligne

 

#6 Fri 24 April 2009 13:31

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

Re: [OpenLayers] Grouper les couches ?

Ce genre de chose ne peut être fait qu'en dehors d'OL. Tu dois créer ta propre structure et faire en sorte que lorsque tu coches la case du groupe, les cases des couches du groupe sont cochées aussi. Chaque "input" permettant d'activer ou désactiver la couche lors d'un événement onClick par exemple.

Mais tu dois aussi faire en sorte que lorsque toutes les couches d'un groupe sont cochées, la case du groupe soit aussi cochée.

Bref, du code JavaScript à écrire wink

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

 

#7 Mon 27 April 2009 10:53

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

Re: [OpenLayers] Grouper les couches ?

Maxime,

J'ai réuni ta dernière question concernant le tuilage des ortho dans le thread où tu avais commencé à poser des questions : http://georezo.net/forum/viewtopic.php?id=60460 afin de garder une logique.

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

 

#8 Mon 27 April 2009 11:46

Maxime31
Participant assidu
Date d'inscription: 3 Sep 2008
Messages: 175

Re: [OpenLayers] Grouper les couches ?

Oui c'est vrai désolé...

Mais merci ca marche !

Hors ligne

 

Pied de page des forums

Powered by FluxBB