Auteur : Marie
Il faut :
- grouper toutes ces couches dans un même layerGroup dans le fichier layers.ini (monGroupe),
- toujours ds le fichier layers.ini, agréger monGroupe de sorte que seul le nom du layerGroup apparaisse dans la légende : ajouter à la définition du layerGroup layers.monGroupe.aggregate = true,
- dans le mapfile, définir des zoom min et max pour chacune des couches de sorte que les plages de zoom ne se recoupent pas,
De fait, lorsque que monGroupe est coché dans la légende, et que la carte est au zoom Z, seule la couche dont la plage de zoom contient la valeur Z s'affichera !
Exemple :
Dans le fichier layers.ini :
layers.monGroupe.className = LayerGroup layers.monGroupe.children = maCouche1, maCouche2 layers.monGroupe.rendering = block layers.monGroupe.aggregate = true
layers.maCouche1.className = Layer layers.maCouche1.label = ma couche 1 layers.maCouche1.msLayer = macouche1
layers.maCouche2.className = Layer layers.maCouche2.label = ma couche 2 layers.maCouche2.msLayer = macouche2
Dans le mapfile :
LAYER NAME "macouche1" ... MAXSCALE 50000 MINSCALE 25000 ... END
LAYER NAME "macouche2" ... MAXSCALE 100000 MINSCALE 50100 ... END
Le groupe mon Groupe s'affichera dans la légende et du zoom 1/25 000 au 1/50 000 (inclu), seule la couche 1 s'affichera puis du 1/50 100 au 1/1 000 000, seule la couche 2 s'affichera.
Pas assez clair ? Aller plus loin ? Posez une question en lien avec ce problème ici.