Skip to Content

Comment aggréger plusieurs groupes de couches géographique dans la légende ?

Auteur : yjacolin

Pour aggréger plusieurs couches dans un groupe, c'est à dire, avoir une case à cocher qui permet de charger plusieurs couches en une fois, ajoutez ce paramètre dans le fichier layers.ini :

 layers.layerId.aggregate = true


Plus d'informations dans la documentation au chapitre Couches.

Admettons que vous ayez un groupe "ligne de métro" et que dans ce groupe vous avez plus de deux couches : une couche "stations", une couche "ligne RER", "ligne métro", ... Voici comment paramétrer votre fichier layers.ini :

 layers.transport.className = LayerGroup
 layers.transport.label = "Ligne de transport"
 layers.transport.children = station, rer, metro, bus
 layers.transport.aggregate = true
 
 layers.station.className = layers
 layers.station.label = "Stations"
 layers.station.msLayer = station
 
 layers.rer.className = layers
 layers.rer.label = "Ligne de RER"
 layers.rer.msLayer = rer
 
 layers.metro.className = layers
 layers.metro.label = "Ligne de métro"
 layers.metro.msLayer = metro
 ...

D'autre part, il est possible d'avoir une couche dont on désire changer l'icône en fonction du zoom (notamment sa taille). Les différentes tailles d'icône vont apparaitre dans la légende, ce qui n'est pas toujours voulut. Vous pouvez enlevez le paramètre NAME dans tous les paramètres CLASS sauf un.

Voici un exemple, admettons que vous voulez faire varier la taille de l'icône des stations de métro en fonction du zoom. Vous ne voulez pas que les trois icônes (une pour chaque niveau de zoom) apparaissent dans la légende, une seule suffira. Voici comment votre mapfile se présentera :

  LAYER
    NAME nomCouche
    DATA ...
    CLASS
      NAME "Station de métro"
      MAXSCALE 20000
      MINSCLAE 500
      STYLE
       ...
      END
    END
    CLASS
      MAXSCALE 100000
      MINSCLAE 20000
      STYLE
       ...
      END
    END
    CLASS
      MAXSCALE 2000000
      MINSCLAE 100000
      STYLE
       ...
      END
    END
  END

Pas assez clair ? Aller plus loin ? Posez une question en lien avec ce problème ici.